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

来源:互联网 发布:怎么把产品放到淘宝上 编辑:程序博客网 时间:2024/04/26 18:13

**

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中定义静态函数 funstatic 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
原创粉丝点击