Re: [C语言] #define的值可以直接这样用吗

楼主: involution (内卷是好文明)   2024-05-16 17:10:03
※ 引述《Wardyal (Wardyal)》之铭言:
: #define PATH "/data/file.txt"
: system("fsync "PATH);
: 有人知道吗
: 我刚刚看到这种写法
: 是真的可以这样喔
第一次看到这种写法还是在要在 printf 印 int32_t 的时候
因为 int32_t 在不同的环境背后可能是不同型别
所以要可移植的话要写成
int32_t x = 123;
printf("%"PRId32, x);
在我机器上的 inttypes.h 可以找到
#define PRId32 "d"
感觉规定相邻的 string literal 会直接接起来就是为了 macro
不过实在挺丑的 = =
作者: Wardyal (Wardyal)   2023-05-16 17:10:00
所以我这写法可以吗 刚刚code review被打枪叫我用snprintf或直接写绝对路径
作者: yam276 ('_')   2024-05-16 17:11:00
不要用define 除非跨平台
作者: Wardyal (Wardyal)   2024-05-16 17:12:00
真假 我看一堆就是不会动的参数我们都直接定义define

Links booklink

Contact Us: admin [ a t ] ucptt.com