goto void extern sizeof
一、goto
高手潜规则:禁用goto
项目经验:程序质量与goto的出现次数成反比
二、void
void修饰函数返回值和参数
(1)如果函数没有返回值 那么应该将其声明为void类型;
(2)如果函数没有参数 应该声明为void 。
不存在void变量
(1)C语言没有定义void究竟是多大内存的别名;
(2)没有void的标尺 无法在内存中“裁剪”出void对应的变量。
void指针的意义
(1)C语言规定只有相同类型的指针才可以相互赋值;
(2)void* 指针作为左值用于“接收”任意类型的指针;
(3)void* 指针作为右值给其他指针时需要强制类型转换。
void*指针的使用 memset函数的实现:
void* my_memset(void* p, char v, int size)
{
void* ret = p;
char* dest = (char*)p;
int i = 0;
for(i = 0; i < size; i++)
{
dest[i] = v;
}
return ret;
}
三、extern extern用于声明外部定义的变量和函数;
extern用于“告诉”编译器用C方式编译。
C++编译器和一些变种的C编译器默认按照自己的方式编译函数和变量,通过extern关键字可以命令编译器“以标准C方式进行编译”。
extern "C"
{
int add(int a,int b)
{
return a + b;
}
}
四、sizeof (1)是指示符 不是函数;
(2)计算相应实体所占内存大小;
(3)sizeof的值在编译期就已经确定。
int i = 0;
printf("%d", sizeof(i));
printf("%d", sizeof i);
printf("%d", sizeof(int)); //结果都为4