gpt4 book ai didi

比较 NULL 宏的大小与 char 的大小

转载 作者:行者123 更新时间:2023-11-30 19:20:31 25 4
gpt4 key购买 nike

我正在测试 NULL 常量确实占用了指针的大小:

ASSERT(sizeof NULL == sizeof(char*));

但是,我不小心写了以下内容:

ASSERT(sizeof NULL == sizeof char);

应该已经编译了,但它给了我以下错误:

error: expected expression before ‘char’

我附上 NULL 后也发生了同样的情况括号内

ASSERT(sizeof(NULL) == sizeof char);

NULL 常量不是通常应该由宏定义,该宏将其与等于 0 的指针关联起来吗?该陈述显然是错误的,但据我所知,没有语法错误。如果这是真的,为什么我会收到编译错误?

最佳答案

“当操作数为类型名时,必须用括号括起来”:C sizeof operator

在C中,NULL通常定义为

#define NULL ((void*)0)

关于比较 NULL 宏的大小与 char 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22127524/

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