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