相关疑难解决方法(0)

为什么大多数C开发人员使用define而不是const?

在许多程序中,a #define用作与常量相同的目的.例如.

#define FIELD_WIDTH 10
const int fieldWidth = 10;
Run Code Online (Sandbox Code Playgroud)

我通常认为第一种形式优先于另一种,依靠预处理器来处理基本上是应用程序的决定.这个传统有原因吗?

c coding-style c-preprocessor

90
推荐指数
5
解决办法
2万
查看次数

在Objective-C中#define vs const

我是Objective-C的新手,我有一些关于const和预处理指令的问题#define.

首先,我发现无法使用定义常量的类型#define.这是为什么?

第二,使用其中一个比另一个更有优势吗?

最后,哪种方式更有效和/或更安全?

const objective-c c-preprocessor

81
推荐指数
4
解决办法
8万
查看次数

为什么有人会使用#define来定义常量?

这是一个简单的问题,但为什么有人会使用#define定义常量?

有什么区别

#define sum 1 和 const int sum = 1;

c++ const c-preprocessor

50
推荐指数
3
解决办法
2万
查看次数

#define和const有什么区别?

可能重复:
为什么有人会使用#define来定义常量?
c ++ C++中的宏和const之间的区别
- 枚举与const对#define

使用#define和const创建常量有什么区别?有没有比其他的性能优势?当然我更喜欢使用它,const但我会考虑#define它是否具有合适的优势.

c++ const c-preprocessor

40
推荐指数
2
解决办法
8万
查看次数

C++中的宏和const有什么区别?

我在技术访谈中被问到这个问题:

constC++中的a 和宏有什么区别?

我的回答是宏是一个预处理器指令,如果使用宏,可能很难调试应用程序,因为它在编译之前被常量表达式替换,而a const可以有类型标识符并且易于调试.

任何人都可以指出任何其他差异,哪些应该是首选?

编辑:

来自IBM C++文档:

以下是一些区别#define和const类型修饰符:

  1. 该#define指令可用于为数字,字符或字符串常量创建名称,而可声明任何类型的const对象.

  2. const对象受变量的作用域规则约束,而使用的常量不受约束#define.与const对象不同,宏的值不会出现在编译器使用的中间源代码中,因为它们是内联扩展的.内联扩展使得调试器无法使用宏值.

  3. 宏可以用在常量表达式中,例如数组绑定,而const对象则不能.(我认为我们肯定需要使用宏来定义array_size.

  4. 编译器不会对宏进行类型检查,包括宏参数.

c++ macros const

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

c-preprocessor ×4

const ×4

c++ ×3

c ×1

coding-style ×1

macros ×1

objective-c ×1