define的作用域
来源:互联网 发布:最优化理论算法 答案 编辑:程序博客网 时间:2024/05/20 21:21
1、#define的作用域问题:
#include<stdio.h>#include<stdlib.h>void toDefine(){#define TEST}void testDefine(){#ifdef TEST printf("Defined \n");#else printf("not defined \n");#endif}void main(void){ testDefine();}运行结果是:Defined
为什么呢?在预编译过程中,#define TEST会被编译器成功的识别,那么TEST的作用域就是从定义到文件结尾的范围;
所以#define一般都放在了文件头部了,目的就是为了覆盖整个代码范围;
如果将代码改为:
#include<stdio.h>#include<stdlib.h>void testDefine(){#ifdef TEST printf("Defined \n");#else printf("not defined \n");#endif}void toDefine(){#define TEST}void main(void){ testDefine();}
运行结果就是not defined了;
参考:http://blog.csdn.net/fly542/article/details/6577262
- define的作用域
- #define的作用域
- #define的作用域
- C/C++ #define的作用域问题
- typedef和#define的作用域问题
- typedef和define的作用域
- 浅析typedef和define的作用域
- typedef和define的作用域
- typedef和define的作用域
- typedef和define的作用域
- typedef和define作用域的问题
- typedef和define的作用域
- typedef和define作用域的区别
- #define WIN32_LEAN_AND_MEAN 的作用
- #define WIN32_LEAN_AND_MEAN 的作用
- define中#的作用
- #define WIN32_LEAN_AND_MEAN 的作用
- #define WIN32_LEAN_AND_MEAN 的作用
- 8种Nosql数据库系统对比
- libav-9.1(ffmpeg)交叉编译
- PHP目录操作
- 未来的八种人将被社会淘汰!
- ZMQ.Socket JAVA 代码示例
- define的作用域
- (补充)struts2.0工作流程
- 2013年2月20日VC++学习笔记
- 快速掌握VB.NET访问数据库原理
- Java虚拟机深入学习之三: Java虚拟机的垃圾收集算法
- adb_fastboot
- 开源爬虫Labin,Nutch,Neritrix介绍和对比
- 项目从tomcat迁移到weblogic环境下问题汇总----不断补充中ing...
- jQuery包装集