关于#if和#ifdef对于编译的区别
来源:互联网 发布:淘宝怎么举报刷销量 编辑:程序博客网 时间:2024/06/08 07:55
C语言中的#if和#ifdef,相同情况下如果分别使用两者的差异。
#if后面理应是判断句,根据判断结果进行执行。
#ifdef 的作用相当于 #if defined().
但是在读code时发现如下使用。
#if (FUN_CON1)
fun1();
#else (FUN_CON2)
fun2();.
....
#endif
其中FUN_CON1,FUN_CON2等等未知,不存在于code中,可能存在于makefile中,或者其他从底层获取的值。
那么这里的#if是否可以直接替换成#ifdef呢?如果不替换,又有什么区别呢?
举个简单的例子,
1.如果
#define FUN_CON1
则#if编译报错,#ifdef编译成功且执行fun1;
2.如果
#define FUN_CON1 "aaa"
结果同1。
3.如果
#define FUN_CON1 0
#define FUN_CON2 1
则#if下执行fun2,#ifdef下执行fun1.
那么,显而易见了。两方面,语法上的区别和判定方式上的区别。
- 关于#if和#ifdef对于编译的区别
- #if 和#ifdef的区别
- #if 和#ifdef的区别
- #if和#ifdef的区别
- #if 和#ifdef的区别
- #if 和#ifdef的区别
- 条件编译#ifdef MACRO_A和#if defined(MACRO_A)的区别
- #ifdef 和#if 的区别和联系
- #ifdef 和 #if defined 的区别
- #ifdef 和 #if defined 的区别
- #ifdef和#if defined之间的区别
- #ifdef和#if defined的区别
- #if、#ifdef、#ifndef的用法和区别
- #ifdef 和 #if defined 的区别
- #if #ifdef和#ifndef区别
- #ifdef 与 #if的区别
- #if,#ifdef和#if defined对于条件编译#if,#ifdef和#if defined这些,深究起来还是有些意思 #if要求是一个表达式,为真则执行以下代码, #ifdef则只要求是
- #if、#ifdef、#if defined之间的区别
- C#网络编程系列九:类似QQ的即时通信程序
- Variable Modifiers [变量调节器]
- Hibernate学习第一天 配置环境和helloworld
- c#获取当前路径的方法大全
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XXX解决
- 关于#if和#ifdef对于编译的区别
- Ubuntu10.04 下架设tftp服务器
- Js验证(邮箱、手机、QQ号等) .
- 在Ubuntu中通过update-alternatives切换软件版本
- 【总结】2012年,很水的一年
- Windows 下 Eclipse+Maven插件的安装
- java.lang.IndexOutOfBoundsException: Remember that ordinal parameters are 1-based解决
- Javascript刷新当前页面
- 去360还是留百度?