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 


全部评论

相关推荐

vegetable_more_exercise:1-1.5万,没错啊,最少是1人民币,在区间内
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务