C语言ifdefined
Ⅰ 关于c语言中#if的用法
这是C++种的条件编译
预处理命令
有两种格式:
1:#ifdef
标示符
程序段1
#else
程序段2
#endif
表示:如果标示符已经被#define
命令
定义
过,则编译程序段1,否则编译程序段2
2:#if
表达式
程序段1
#else
程序段2
#endif
表示:如果表达式为真,则编译程序段1,否则编译程序段2.
你写出的命令应该属于格式1
Ⅱ C语言define和if定义用户标识符吗
C语言合法标识符规则如下:
1 由数字,字母,下划线组成;
2 不能由数字开头。即第一个字符只能是字母或下划线。
3 区分大小写。
4 不可与系统关键字相同。
define和if都是C语言的关键字,不符合第4条,所以不能称为用户标识符。
其中,define是宏定义的关键字,而if的判断语句的关键字。
Ⅲ C语言的#ifdef 和 if defined 的区别
#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如
#if defined (AAA) && defined (BBB)
xxxxxxxxx
#endif
#if defined (AAA) || VERSION > 12
xxxxxxxxx
#endif
而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时
#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if defined
Ⅳ C语言的#ifdef 和 if defined 的区别
#ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如
#if defined (AAA) && defined (BBB)
xxxxxxxxx
#endif
#if defined (AAA) || VERSION > 12
xxxxxxxxx
#endif
而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时
#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if defined
Ⅳ C语言中的条件编译 #if define(宏名称)为什么错误了
预编译指令格式错误。
#if define (IBMPC)应改为#ifdef IBMPC
这种结构是为了防止头文件嵌套包含。一般的用法是
#ifndef _IBMPC_H
#define _IBMPC_H
#include"ibmpc.h"
....
#endif
Ⅵ c语言中#if defined是什么含义 怎么用
应该是#ifdef和#ifndef,这是条件编译的宏定义。
一般程序在调试过程的编译跟正式发行的时候是不一样的,调试过程中可能有很多测试语句是用户不需要的,但是如果一行行删掉或者注释掉又很麻烦,并且如果发行之后又需要修改BUG又要用到之前的测试,重写也是很麻烦的。于是可以考虑用条件编译。
首先可以写一个宏定义来表示是否按调试模式编译
#define
DEBUG
然后需要写测试语句的时候都这样写
#ifdef
DEBUG
测试语句
#endif
意思是,如果DEBUG已经被定义,则编译时将以下语句编译,否则忽略,这样,只需要把#define
DEBUG这一句注释掉,编译器就可以忽略所有测试语句,而只要去掉注释,编译器又会把这些测试语句编译,非常方便。
#ifndef类似,就是如果此标识符没有被定义过,则编译下列语句。
还有疑问欢迎追问。
Ⅶ c语言中#if defined是什么含义 怎么用
这些都是给编译器的预处理命令。(又叫宏)。
#if !defined -- 预处理命令条件语句开始,如果尚未声明(定义)什么头文件或变量名
#define -- 则声明(定义)这个头文件或变量名
#endif -- 预处理命令条件语句结束符
AFX_ICD_H__ED7170FE。。。-- 这是Afx头文件文件名, MFC的。
另外,站长团上有产品团购,便宜有保证
Ⅷ C语言中#if defined(__DEBUG__) # define Msg(msg) printf("%s\n", msg) #else # define Msg(msg) #endif
这是C语言的宏定义
#if defined(__DEBUG__) 如果定义了宏 __DEBUG__ 可以在编译选项中加这个宏,也可以在调用代码前用#define命令来定义这个宏,也可以不定义
# define Msg(msg) printf("%s\n", msg) 如果定义了宏 __DEBUG__,则遇到Msg(msg) 这样的语句,就会替换成printf("%s\n", msg)
#else
# define Msg(msg) 否则,没定义宏__DEBUG__,则遇到Msg(msg) ,就会替换成一个空语句。
#endif
Ⅸ c语言的宏定义 if defined
说的简单一点就是一个判断语句,判断#if defined(#ifndef)后面的语句是否有(没有)被宏定义过,如果条件为真就执行其间的语句,否则就不管它。
Ⅹ c语言的宏定义 if defined
没有说得那么繁琐.
因为对于一个大程序而言,我们可能要定义很多常量(
不管是放在源文件还是头文件
),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if
defined宏正是为这种情况提供了解决方案.举个例子,如下:
#define
....
#define
....
........
........
#define
a
100
.......
此时,我们要检查a是否定义(假设我们已经记不着这点了),或者我们要给a一个不同的值,就加入如下句子
#if
defined
a
#undef
a
#define
a
200
#endif
上述语句检验a是否被定义,如果被定义,则用#undef语句解除定义,并重新定义a为200
同样,检验a是否定义:
#ifndef
a
//如果a没有被定义
#define
a
100
#endif
以上所用的宏中:#undef为解除定义,#ifndef是if
not
defined的缩写,即如果没有定义。
这就是#if
defined
的唯一作用!