c语言 #if 和if的区别

#if后没有def什么的,而是一个条件公式然后就是#endif
这种用法和直接用if有什么区别?

有区别,#if 是预编译。#if如果不是真的话, 其后面的代码是不会被编译的。跟#ifdef 差不多,只是#if后面跟的是条件,而 #ifdef后面跟的是一个宏,判断其是否定义。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-09-22
#if和if都是C和C++中的指令,但是二者区别很大。
1)#if属于条件编译技术,用于给编译器提供信息,控制有些代码变成机器语言
2)if属于程序判断,在程序运行时控制语句是否被执行;
3)#if在程序编译前执行,if在程序运行时执行;
4)#if后面不能写变量,if后面可以写变量。本回答被网友采纳
第2个回答  2011-05-20
#if 与#endif是成对使用的,预处理
if则是普通的条件判断语句,判断后面紧跟的条件是否为真,为真则执行后面紧跟的语句

预处理不懂的话 很难明白的
到百度 输入 c语言 预处理 然后那个百度文库 挺不错的
第3个回答  2011-05-20
前者是预处理阶段,后者是条件语句。
第4个回答  2011-05-20
加#的都是编译预处理语句:
#if 表达式
#endif
表示的意思是如果if后面的表达式不为0的话就编译#if#endif之间的语句,否则就不编译。
相似回答