有兴趣的入来看看,做做外面的面试题目(其中之一)
在32位计算机中机器字长为2,内存对齐方式为4
struct a1
{
int a:3;
int b:4;
int c:5;
int d;
}
sizeof(a1)=?
答案在后天公布
----------------解决方案--------------------------------------------------------
有这种写法吗?
----------------解决方案--------------------------------------------------------
什么语言呀
----------------解决方案--------------------------------------------------------
是C的结构体,有这种写法,我刚刚我的朋友问我我都不知,这是考你对编译器的熟悉情况。答案可能因编译的不同而有所出入
----------------解决方案--------------------------------------------------------
我也没看过这样的写法,但刚才我去测试一下,是正确的.而且我编译的结果是4.
----------------解决方案--------------------------------------------------------
楼上的用乜编译器啊?
我听朋友说出面做的时候没有电脑做这题,只是题目有写明在某某编译器中,而且当时没有内存对齐长度
[此贴子已经被作者于2006-10-25 23:50:26编辑过]
----------------解决方案--------------------------------------------------------
TC是4
VC++是8
----------------解决方案--------------------------------------------------------
答案:TC 4 (用VC的可以自己试一下好像是8还是12)其实此
题是关于编译原理的,考的主要是预编译命令所以各种编译有
所不同但至于很多人不知道这种写法,可能主要是int a:3;这
几行,一开始我都不知,这题目是朋友问我的,他不知在何面
试时的其中一道题目后来才知这种是压缩方式,a占3个bit而不
同于平的标准整型的长度,关于这方可以看一下编译原理方面
的书
----------------解决方案--------------------------------------------------------
是位域问题。
----------------解决方案--------------------------------------------------------
总而言之,“int a:3;”这种是压缩方式,比正常小一点。
----------------解决方案--------------------------------------------------------