gpt4 book ai didi

c - 为什么使用 C typedef 而不是 #defines?

转载 作者:太空狗 更新时间:2023-10-29 16:42:33 28 4
gpt4 key购买 nike

在 C 代码中使用 typedef 代替 #define 有什么优势(如果有的话)?

举个例子,使用

有什么好处吗?
typedef unsigned char UBYTE

结束

#define UBYTE unsigned char

当两者都可以用作

void func()
{
UBYTE byte_value = 0;

/* Do some stuff */

return byte_value;
}

很明显,预处理器会尝试在它看到的任何地方扩展一个#define,这不会发生在一个typedef上,但这似乎不是我有任何特别的优势或劣势;如果出现问题,我想不出任何一种使用都不会导致构建错误的情况。

最佳答案

如果你对数组类型进行 typedef,你会看到不同之处:

typedef unsigned char UCARY[3];
struct example { UCARY x, y, z; };

用#define 做...不,我们不要去那里。

[编辑]:另一个优点是调试器通常知道 typedef 但不知道 #defines。

关于c - 为什么使用 C typedef 而不是 #defines?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2591713/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com