随笔分类 - C
摘要:struct MyStruct{double dda1;char dda;int type};对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多少呢?也许你会这样求:sizeof(MyStruct)=sizeof(double)+sizeof(char)+sizeof(int)=13但是当在VC中测试上面结构的大小时,你会发现sizeof(MyStruct)为16。你知道为什么在VC中会得出这样一个结果吗?其实,这是VC对变量存储的一个特殊处理。为了提高CPU的存储速度,VC对一些变量的起始地址做了“对齐”处理。在默认情况下,VC规定各成员变量存放的起
阅读全文
摘要:void的含义void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。void的作用①对函数返回的限定。②对函数参数的限定。当函数不需要返回值时,必须使用void限定。例如:void func(int, int);当函数不允许接受参数时,必须使用void限定。例如:int func(void)。int f(){ return 0;}int main(int argc, char *argv[]){ f(10); //如果函数为int f(void),则报错 int *pi; void *pv; pi=pv;//注意在C++编译器中必须转换 pi=(int*)pv; pv=p
阅读全文
摘要:宏定义:#define G 9.8。。。。。。。。。。。#undef G宏定义的作用域注意不同:#define AB(X) x*x-2*x+10AB(1+2)=1+2*1+2-2*1+2+10=15AB(3)=3*3-2*3+10=13AB(3)*10=3*3-2*3+10*10=103#define AB(x) ((x)*(x)-2*(X)+10)AB(1+2)=(1+2)*(1+2)+10=13AB(3)*10=(3*3-2*3+10)*10=130宏只是进行简单的字符替换。宏展开是编译前进行的,在展开时不分配内存单元。宏不存在类型问题,宏名没有类型。它的参数也没有类型。只是一个符号代表。
阅读全文
摘要:2年前面试的时候遇到过这样的题。今天想起来怀念一下。32位的寻址空间是2^32,即32bit,也就是4个字节32位:char 1个字节short 2个int 4个float 4个字节unsigned int 4个char *(即指针类型) 4个unsigned long 4个long 4个long long 8个double 8个64位:char 1字节short 2个字节int 4个字节float 4个字节char * 8个字节long long 8个long 8个double 8个unsigned long 8个unsigned int 4个
阅读全文