只有1參數
回答
那#define
將定義__MAIN_C__
到沒有值(感謝n.m.和一個簡單的測試程序)。當你不需要關心它的定義時,這是一個快捷方式,當你需要某些東西時#define
d。在這種情況下,在你的代碼的某個地方,你可能只看到:
#ifdef __MAIN_C__
而且因爲它的定義(也許是非零),不關心它有什麼具體的價值,只要。
你會經常看到這樣的include guards,像這樣:
#ifndef MYHEADER_H
#define MYHEADER_H
// stuff here
#endif
這類似於在編譯標誌這樣做:
gcc -D__MAIN_C__ main.c
如果你想看到它定義到什麼都不試試,編譯這個,看它失敗:
#include <stdio.h>
#define TEST
int main(int argc, char *argv[])
{
printf("%d\n", TEST);
return 0;
}
不,它不會是1. – 2012-03-13 16:38:34
@n.m .:它會是什麼? – Randomblue 2012-03-13 16:41:46
@ n.m。謝謝,剛剛驗證 - 它的字面意思是沒有定義,但定義。 – 2012-03-13 16:42:27
是的,這可以完成索姆ething。如果你看,有一個相當不錯的機會,你會發現這樣的:#ifdef __MAIN_C__
某處 - 這只是檢查符號是否已被定義,無論給定的值(如果有的話)。
定義在這種情況下只需設置MAIN_C。沒有賦值,但預處理器將MAIN_C作爲「true」。一般情況下,像定義這些被用於包括或編譯之前排除代碼,使用類似以下內容:
#define WIN32
#ifdef WIN32
//some win32-specific code
#else
//some other code
#endif
不,它不會將它設置爲1. – 2012-03-13 16:43:32
我知道。我在發佈並糾正之後立即意識到了這一點。接得好。 – Fopedush 2012-03-13 16:49:45
這一定義__MAIN_C__
擴大(粗略地講)不了了之。
一個可能的用途:
#ifdef __MAIN_C__
foo(bar);
#endif
還有一句:
#ifdef PLAIN_OLD_OS
#define __MAIN_C__
#else
#define __MAIN_C__ __os_specific_attribute(dllsomething)
#endif
__MAIN_C__ int main (int argc, char* argv[]) {
- 1. 只有一個參數時,$ @和$ 1之間有什麼區別?
- 2. Sklearn set_params只需要1個參數?
- 3. TypeError:Init只需要1個位置參數
- 4. TypeError:__init __()只需要1個參數(給出3個參數)pyXML
- 5. TypeError:只需要1個參數(給出2個參數)
- 6. mysqli_insert_id()預計只有1個參數,0在CodeIgniter中給出
- 7. 警告:mysqli_error()期望只有1個參數,0給出
- 8. 警告:mysqli_free_result()期望只有1個參數,2給出
- 9. left()只需要一個參數,給定2,但我只給1?
- 10. 只有1空間
- 11. Dragg只有1格
- 12. 只有Time參數的DateTime.TryParse?
- 13. C++與隨機數只有0到1
- 14. 函數只需要2個參數(1給出)kivy定時器
- 15. Django 1.10:視圖函數()只需要2個參數(1給出)
- 16. jQuery的只有1項inArray
- 17. ZedGraph PointPairs只有1符號
- 18. 只有1 contentString顯示
- 19. ViewFlipper只有1個佈局?
- 20. 只有1行的Datagrid
- 21. 沒有爲參數1指定值
- 22. 參數#1沒有設置錯誤
- 23. 沒有指定參數1的值
- 24. PlaceholderAdmin引發<lambda>()只需要1個參數(給出2個參數)
- 25. Uncaught TypeError:需要1個參數,但只存在0 ...但是我的函數沒有參數?
- 26. 錯誤:參數1
- 27. 錯誤:參數1
- 28. SqlCeDataReader參數ordinal = 1
- 29. 無法執行的「窗口」的postMessage「:需要2個參數,但只有1本
- 30. php mysql錯誤:警告:mysqli_error()期望只有1個參數,0給出
你可能想閱讀更多的關於[C預處理器(HTTP一點://en.wikipedia。組織/維基/ C_preprocessor)。 – 2012-03-13 16:38:27
應該指出,'__MAIN_C__'不是應用程序使用的合法標識符。它被保留用於執行。 – 2012-03-13 17:09:06
@R:你能提供更多的細節嗎? – Randomblue 2012-03-13 17:10:51