只有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