小编ale*_*lex的帖子

C变量类型断言

uint32_t fail_count = 0;

...

if(is_failed)
    if(fail_count < UINT32_MAX - 1 )
        ++fail_count;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是此代码易碎。明天,我可能会将fail_countfrom 的类型更改为uint32_tint32_t而忘记更新UINT32_MAX

有什么方法可以在我编写s 的函数中断言fail_counta 吗?uint32_tif

PS 1-我知道在C ++中很容易,但是我正在寻找一种C方式。

PS 2-与使用编译器警告相比,我更喜欢使用两个断言。通过检查数字大小sizeof应该可以,但是有什么方法可以区分类型是否为无符号?

c

15
推荐指数
1
解决办法
925
查看次数

标签 统计

c ×1