疑问:
typedef int a[10];
a b[10]; 为什么分配400个字节的空间?
int a[10];为什么分配了40个字节的空间?
问题:应该怎么解释typedef的这种行为呢?而如果换成是#define a int[10];以上定义则报错?
解答:
typedef int a[10];
说明a就等同于int[10]类型。。所以
a b[10];//等同与int b[10][10];
而int a[10];这里的a代表的不是类型。。而是数组名。。
而#define只是字符替换而已。。
a b[10];//会被替换为int[10] b[10];自然是不能通过编译的。。
文章的脚注信息由WordPress的wp-posturl插件自动生成
微信扫一扫,打赏作者吧~![[整理][转载]win下网卡抓包发包库Npcap使用](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2023/08/demo_1-1024x711.jpg&w=280&h=210&zc=1)
![[转载]基础数据char,int,double,string是线程安全的吗?](http://www.jyguagua.com/wp-content/themes/begin/img/random/5.jpg)
![[整理]用c++编写的RDTSC性能计时器](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2020/12/rdtsc-assembly-example.jpg&w=280&h=210&zc=1)
![[整理]strcmp汇编写法](http://www.jyguagua.com/wp-content/themes/begin/img/random/13.jpg)