c - 在函数调用中向枚举添加 uint 的风险

标签 c function enums

我有一个返回 float 的函数:

float function(enum value)

然后我有一个枚举

typedef enum
{
    a = 0,
    b,
    c
} myenum;

我想做以下事情:

function(a+1);

而且我想知道是否有任何风险如果枚举发生变化时出现意外行为的风险。我的问题可能看起来很愚蠢,但我必须确保我正在做的事情没有风险。

请不要问为什么要这样做。因为我不知道。我只需要知道它是否安全。

最佳答案

这是安全的。此外,标准保证 a+1b 并且 a+2 在您的场景中是 c描述:

C99 standard, section 6.7.2.2, part 3: If the first enumerator has no =, the value of its enumeration constant is 0. Each subsequent enumerator with no = defines its enumeration constant as the value of the constant expression obtained by adding 1 to the value of the previous enumeration constant.

关于c - 在函数调用中向枚举添加 uint 的风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655032/

相关文章:

c - 如何从汇编代码逆向工程C整数类型?

Python如何在另一个函数中使用局部变量作为参数

c - 如何用 C 语言创建通用的个性化函数,然后将它们包含在您的程序中?

c - C中文件与文件之间读写的问题

c - Minifilter 哪个标签应该与文件系统字符串缓冲区一起使用?

c - C 中 'int' 到 'int [10]' 赋值中的不兼容类型

javascript - 为什么 "this"在函数的返回对象窗口内

sql - 在基于 SQL 的应用程序中 self 记录 "codes"的最佳方法是什么?

rust - 如何在忽略判别式的情况下找到枚举的大小?

javascript - 将枚举传递给函数不起作用