mysql main函数_关于main()函数的小技巧
話說,有這樣一道據(jù)說是月薪2W的筆試題: #include stdio.h void print() { * } void main() { } 要求在*部分寫代碼使整個程序運行后輸出“hello world”,有些人說,這還不簡單啊,于是寫出這樣的代碼: 01. #include stdio.h 02. void print() 03. { 04. p
話說,有這樣一道據(jù)說是月薪2W的筆試題:
#include "stdio.h"
void print()
{
*
}
void main()
{
}
要求在*部分寫代碼使整個程序運行后輸出“hello world”,有些人說,這還不簡單啊,于是寫出這樣的代碼:
01.#include "stdio.h"
02.void
print()
03.{
04.printf("hello
world");
05.}
06.void
main()
07.{
08.print();
09.}
這樣寫的確是沒問題,但是違背了題目的要求,因為題目不允許修改main函數(shù),這下仿佛我們就沒轍了,因為我們學(xué)習(xí)C/C++語言的時候,明確說明main函數(shù)是程序的主函數(shù),也是程序的入口函數(shù),可是現(xiàn)在主函數(shù)為空,那怎么會執(zhí)行子函數(shù)呢?
其實這個筆試題考察的不是我們對基本知識的理解,而是要學(xué)會發(fā)現(xiàn)問題解決問題的能力,有時候,當一條路走不通的時候,我們就要換一條路,通過查找資料,我們發(fā)現(xiàn)其實C++是可以修改入口函數(shù)的。
這里需要一個C++預(yù)編譯標識符 #pragma comment() 來幫助我們搞定這個問題。他的使用類型是:pragma comment( comment-type ,["commentstring"] )。
comment-type是一個預(yù)定義的標識符,指定注釋的類型,應(yīng)該是compiler,exestr,lib,linker之一。
commentstring是一個提供為comment-type提供附加信息的字符串。
這里我們需要使用linker來修改鏈接設(shè)置:
#pragma comment(linker, "/entry:print")
看到了么?通過/entry參數(shù)來設(shè)置程序鏈接時候的主函數(shù)為print,這樣,就相當于print函數(shù)是整個程序的主函數(shù),他替換了main函數(shù)的作用,相反的,main函數(shù)則成為了一個子函數(shù)
完整的代碼和運行結(jié)果如圖所示:
至于#pragma comment(lib, "msvcrt.lib")是因為使用了puts函數(shù),如果使用printf的話可以不要這一句
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的mysql main函数_关于main()函数的小技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: A股又现天价分手费!周鸿祎离婚转让近90
- 下一篇: 数毛社评《最后生还者》PC版:建议用超级