2014-02-21 60 views
2

我想在main()之前執行用戶定義函數。 可以在c中的main()之前執行一個函數嗎?主要執行任何函數

sum(int a, int b) { return (a+b); } 

g_sum = sum(1, 5); 

main(){ 
    sum(5, 6); 
    printf("%d", g_sum); 
} 
+1

在C++中,相當好。你使用什麼編譯器?使用'GCC',你可以使用__attribute __((構造函數))做一些事情' – starrify

+0

你的代碼不會編譯......你不能在文件級別擁有語句或表達式。 –

回答

6

是否有可能之前執行函數main()

是的,它是可能的,如果你正在使用gcc和g ++編譯器,然後可以通過使用__attribute__((constructor))

完成示例:

#include <stdio.h> 

void beforeMain (void) __attribute__((constructor)); 

void beforeMain (void) 
{ 
    printf ("\nThis is before main\n"); 
} 

int main() 
{ 
printf ("\nThis is my main \n"); 
return 0; 
} 
+2

謝謝Rahul。真的行。 – sutirtha

+0

@sutirtha: - 不客氣! –

+1

只是好奇心,在什麼情況下我們需要這個功能? – Meluha

相關問題