只有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. 爲什麼我的參數數組只有1的大小?
- 3. Sklearn set_params只需要1個參數?
- 4. request.getAsync()只返回1個參數
- 5. TypeError:Init只需要1個位置參數
- 6. 錯誤:沒有參數$ 1
- 7. 轉,沒有參數$ 1
- 8. TypeError:只需要1個參數(給出2個參數)
- 9. TypeError:__init __()只需要1個參數(給出3個參數)pyXML
- 10. 警告:mysqli_free_result()期望只有1個參數,2給出
- 11. mysqli_error()期望只有1個參數,0給出
- 12. mysqli_insert_id()預計只有1個參數,0在CodeIgniter中給出
- 13. 將類添加到只有1個參數的方法中?
- 14. Python Argparse add_mutually_exclusive_group() - 需要ether 2 args或者只有1個參數
- 15. 警告:mysqli_error()期望只有1個參數,0給出
- 16. 只有1空間
- 17. Dragg只有1格
- 18. left()只需要一個參數,給定2,但我只給1?
- 19. 只有Time參數的DateTime.TryParse?
- 20. C++與隨機數只有0到1
- 21. 更新值其中計數只有1
- 22. PyGTK該函數只需要1個參數(2給出)
- 23. 函數只需要2個參數(1給出)kivy定時器
- 24. Django 1.10:視圖函數()只需要2個參數(1給出)
- 25. TypeError:函數()只需要2個參數(1給出)(python)
- 26. 「太多的參數的方法調用,預計1,有2個」,但真的只有1
- 27. 沒有指定參數1的值
- 28. 沒有爲參數1指定值
- 29. 參數#1沒有設置錯誤
- 30. NSURLConnect工作只有1次
你可能想閱讀更多的關於[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