C语言基础1:几个常用关键字的解析

**

1、sizeof关键字:

**

    sizeof关键字是编译时关键字,也就是对类型或变量进行内存大小的计算,在程序编译时就确定了的。
    判断下面代码是否正确如下:
int array[sizeof(unsigned long)];

答案:正确的,原因就是sizeof是编译时运算符,在程序编译时,sizeof(unsigned long)的大小就确定是8.这不是一个长度未确定的整形数组。

2、static关键字的作用

//1、在一个文件中修饰全局变量,改变只能在改文件中被使用,其他文件不能使用
static int a; //在 a.c文件中定义的,在同一工程中的b.c文件就不能使用static修饰的全局变量a
//2、static修饰函数内的变量,该变量内存是只分配一次的,其值为上次调用后的值
#include <stdio.h>
void fun(void)
{
    static int a = 0;
    a++;
    printf("调用一次fun函数,a的值是:%d\n",a);

}
int main(int args,char**avgs)
{
    fun(); // a = 1
    fun(); // a = 2
    return 0;
}

//3、static修饰函数,该函数为静态函数,也是只能在定义的文件中被调用,在其他文件中不能被调用

// a.c中定义静态函数 fun
static void fun()
{
    printf("static关键字的学习\n");
}
// 在和a.c是同一工程的文件 b.c,就不能调用 fun函数

static关键字在C语言中的三大作用,总结:
1、static修饰的全局变量只能在被定义的文件中使用
2、static修饰函数内的局部变量,该变量在内存中只分配一次,而且结果保存上次调用的结果。
3、static修饰函数,该静态函数只能在定义的文件中被调用。

3、宏定义#define的使用

// #define的使用
#define M 10  //就是用M替代了10,在编译的时候会重现替换回来

// 宏定义使用注意事项:尽可能多的加括号,防止“边际效应”
#define M (((a)+(b))*((c)-(d)))

4、#ifndefine #define #endif的作用

// 作用是:防止头文件被重复包含引起的错误
#ifndefine __FUNCTION_H__
#define __FUNCTION_H__
/*
头文件的定义
*/
#endif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值