预处理器指令#if
与正常if
之间的区别C?我是C的新手。预处理器指令#if与正常之间的区别
回答
#前面的语句被称为预处理器指令。在代码实际编译之前,它们由解析器处理。从使用Google的第一次搜索结果中找到:
预处理指令是包含在我们程序代码中的行,它们不是程序语句,而是指令为预处理器。这些行总是以散列符号(#)开头。预处理器在实际编译代码开始之前执行,因此预处理器在任何代码由语句生成之前将所有这些指令摘要。
因此,#if将在编译时决定,“正常”如果将在运行时决定。换句话说,
#define TEST 1
#if TEST
printf("%d", TEST);
#endif
将编译为
printf("%d", 1);
相反,如果你写
#define TEST 1
if(TEST)
printf("%d", TEST);
该计划实际上将编译宏作为
if(1)
printf("%d", 1);
所以我们可以使用我们想要的任何东西? – kevin 2011-03-03 03:17:16
@kevin编号具体'int x = 1; #if X == 1'根本不起作用。 – 2011-03-03 03:30:25
预处理器if
允许您在将代码发送到编译器之前对其进行调整。通常用于停止两次添加标题代码。
编辑,你的意思是C++,因为它被标记为这样吗? http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/
停止添加两次头文件代码对于预处理程序来说是非常有限甚至是深奥的使用...几乎“不正常”。 – 2011-03-03 06:00:29
@Jim Balter根据原始问题,凯文和其他人可能会发现这些答案可能首先在代码中看到它作为标头警卫... – Zak 2011-03-03 06:25:23
这没有任何理由。事实上,从原始问题来看,这是极不可能的。 – 2011-03-03 20:26:59
预处理器if作为正在编译的程序的第一步由预处理器处理。正常if在程序执行时在运行时处理。预处理器指令用于启用条件编译,根据不同的定义预处理器常量/表达式使用代码的不同部分。正常if用于控制正在执行的程序中的流程。
预处理指令检查或在o其他词,#定义指令,并且在定义的情况下替换定义。因此只检查宏变量。这是在预处理阶段执行的。
正常如果或控制流标记如果检查与变量或函数返回值的条件。该检查在执行期间完成。
- 1. 预处理器指令之间的区别#if和#ifdef
- 2. 预处理器指令#error和#warning之间的区别
- 3. 预处理器指令和库之间的区别
- 4. 指令控制器和正常控制器之间的区别
- 5. #if /#endif预处理指令
- 6. 多核处理器之间的区别
- 7. 存储过程与预处理语句之间的区别?
- 8. C#预处理器指令
- 9. Gfortran预处理器指令
- 10. VB.NET预处理器指令
- 11. DDK预处理器指令
- 12. GNU Make中的ifeq指令和if函数之间的区别
- 13. 预处理器指令定义的功能宏与多个if/else if语句
- 14. 多处理器与多核心之间的区别
- 15. 机器可处理和机器可理解之间的区别
- 16. #if和#ifdef Objective-C预处理器宏有什么区别?
- 17. #if和if子句之间的区别?
- 18. 使用预处理器指令在Visual Studio中调试WindowsService #if
- 19. clBuildProgram的多个预处理器指令
- 20. nuget库中的预处理器指令
- 21. xib中的预处理器指令?
- 22. 检测iPad的预处理器指令
- 23. XTEXT:预处理器指令的规则
- 24. 命令与ScriptBlock之间的区别Powershell
- 25. 如何区分预处理器和编译器指令?
- 26. XML中的“处理指令”和“声明性声明”之间有什么区别?
- 27. 指令与模板之间的区别与没有模板和Angular 1.2和1.1之间的区别?
- 28. 指令级并行与并行处理的区别
- 29. 指针之间的区别
- 30. 指令中孩子与孤立范围之间的区别
你问预处理器做什么?你问它是如何工作的?你真的在问什么? – 2011-03-03 02:44:19
我想知道预处理器是怎么做的! – kevin 2011-03-03 02:52:59
请不要喊,请问语法问题。我不知道“预处理器的工作原理”是什么意思 - 它当然不清楚S.Lott的哪一种替代品是用来识别的。 – 2011-03-03 06:02:13