常量字符串定义还是使用宏?
有一个问题突然搞不清了:
例如有一个字符串:"Start Event"
书上会推荐我们定义成
而不推荐使用宏:
但是如果是在这个大工程中,有非常多这样的字符串,手边的工程就有需要上万个这样的常量字符串,那么如果使用const char *来定义在某个文件中(这个文件就是专门放这些常量字符串的),这样会一开始就会占用很多不必要的内存,如果用宏#define的话,就不会占用内存了,只有在需要的时候才占用。
是一如即往的使用宏来定义这样的字符串呢还是分情况,如果只是些小工程就用const char *,真需要太多的时候就用宏?
例如有一个字符串:"Start Event"
书上会推荐我们定义成
const char *EVENT_START = "Start Event";而不推荐使用宏:
#define EVENT_START "Start Event"但是如果是在这个大工程中,有非常多这样的字符串,手边的工程就有需要上万个这样的常量字符串,那么如果使用const char *来定义在某个文件中(这个文件就是专门放这些常量字符串的),这样会一开始就会占用很多不必要的内存,如果用宏#define的话,就不会占用内存了,只有在需要的时候才占用。
是一如即往的使用宏来定义这样的字符串呢还是分情况,如果只是些小工程就用const char *,真需要太多的时候就用宏?
...全文
相关推荐
linux的一些宏的使用说明.pdf
- **常量定义**:例如`#define NUMBER 9`,这种方式可以定义常量,方便在程序中多次使用同一个数值。
工作笔记-宏中的字符串# 操作符与## 操作符
/ 输出 "Hello, World!return 0;在这个例子中,MESSAGE是一个宏,表示字符串。当程序编译时,MESSAGE会被替换为这个字符串常量。宏中的字符串:通过宏,我们可以将常用的字符串作为常量定义,并且通过条件编译等方式生成不同的字符串。操作符:将宏参数转换为字符串常量,可以用于创建动态字符串。##操作符:用于拼接字符串常量或宏参数,可以用来生成新的字符串或变量名。条件编译:宏中的字符串也可以结合条件编译,方便地根据编译时的条件选择不同的字符串输出。
宏.docx
宏定义通常使用`#define`关键字来实现,如文件中所示的`#define MAXN 500`定义了一个名为`MAXN`的常量,其值为500。
c语言宏使用
#### 宏定义的基础概念在C语言中,宏是一种文本替换工具,它允许程序员定义一个符号来代表一个字符串值。这个字符串值可以是简单的常量、表达式或更复杂的代码片段。
define使用
例如,下面定义了一个求两个数最大值的宏:```c#define max(x, y) ((x) > (y) ?


