C/C++ sizeof是一个关键字,不是函数(其后有时可不加括号作为分隔符)

您所在的位置:网站首页 if后面一定要加括号吗 C/C++ sizeof是一个关键字,不是函数(其后有时可不加括号作为分隔符)

C/C++ sizeof是一个关键字,不是函数(其后有时可不加括号作为分隔符)

2024-07-13 02:42| 来源: 网络整理| 查看: 265

sizeof 是一个关键字,它是一个编译时运算符,用于判断变量或数据类型的字节大小。 sizeof 运算符可用于获取类、结构、共用体和其他用户自定义数据类型的大小。

所以在使用sizeof关键字的时候,可以不用加(),比如:

ubuntu上编译运行: (test.c)

#include #include #include int main() { printf("%d\n", sizeof(int)); //4 printf("%d\n", sizeof "123456"); //7 printf("%d\n", sizeof"123456"); //7 }

我还以为int不用加括号也行呢,结果编译不过。。。

参考文章1:C++ sizeof 运算符

参考文章2:sizeof错误的认识(sizeof是关键字为什么可以加括号)

20220524 为什么 sizeof int 不加括号编译不过

因为不加括号在某些情况下会造成二义性,比如下面这个例子:

sizeof int * + 1

他指的是 (sizeof (int*)) + 1 还是 (sizeof(int)) * (+1) 呢? 所以为了避免这种潜在的二义性,C语言规定如果一个数据类型名(例如:int)出现在一个表达式中就需要加上括号。

sizeof(int)是对的,而sizeof int会报错。

参考文章1:https://bbs.csdn.net/topics/603016930

参考文章2:Why sizeof int is wrong, while sizeof(int) is right?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3