#if和普通的if有什么区别啊。msdn上说的一大堆,就是没看懂。有谁能简单地说一下么?
解决方案 »
- 这是不是数据库里取出来的东西的长度问题导致的啊??
- 求助:CSDN下载软件
- 我想在我的对话筐上建立一个动态的组合框控件应该这样处理?
- 高手帮忙啊,有关属性页的问题
- 若Combo下紧临一个控件,当拉了一次Combo后,下面的控件会被覆盖住
- #import "d:\ew.dll" no_namespace时出现“Error C2011 'tagSAFEARRAY' :struct type redefinition"请问怎么回事,如何解决
- 如何传递2维数组参数A[m][n], 0<m,n<N, m,n 未知。
- 请教CString::GetData()的一些问题
- 怎样获取treeview中的下一个结点?
- 大家救救我
- 在对话框中创界了一个view , 在操作对话框的时候想获取 文档视图结构中的 视图
- 为什么还出现文件共享违例
#else
...
#endif//与#if对应
作为一个编译“开关”,比如:
#if(条件满足)
执行代码1
#else
执行代码2
#endif
假如编译时,确实满足条件,则生成的程序文件(.exe文件)中不会有执行代码2的。如果用普通if语句,生成的程序文件就会有执行代码2,这个区别看看生成文件大小就可以知道。如果你的条件在程序编译前就已经确定了,那就用#if;如果条件需要在程序运行过程中才能判断,则用if。
以上这些就是我的理解,说的不规范,希望对搂住有所帮助。
...这里应该表示如果是在DEBUG模式下要执行下列代码。那么宏_DEBUG是在哪里定义的呢?如果写成
#if _DEBUG可不可以?
你到project settings里面,选择win32 debug,选择c/c++页面,在preprocessor definitions里面就能看到_DEBUG了
而且既然在project setting的preprocessor definitions里面已经定义了_DEBUG,那么#ifdef _DEBUG不是始终为TRUE了么?如果我在Release模式下batch build一把,_DEBUG这个宏还存在么?