常见关键字

  • 一、常见关键字
    • 1.关键字 auto
    • 2.关键字 extern
    • 3.关键字register
    • 4.关键字 signed
    • 5.关键字 unsigned
    • 6.关键字 union
    • 7.关键字 void
    • 8.关键字 typedef
    • 9.关键字static

一、常见关键字

C语言提供关键字,不能自己创建;


变量名不能是关键字;
define,include不是关键字,而是预处理命令

1.关键字 auto

每个局部变量都是auto修饰的,只不过省略了。

2.关键字 extern

是用来声明外部符号的

3.关键字register

寄存器关键字

register int num = 100;
//建议num的值寄放在寄存器中

4.关键字 signed

有符号

5.关键字 unsigned

无符号

6.关键字 union

联合体(公用体)

7.关键字 void

无、空

8.关键字 typedef

typedef 顾名思义是类型定义,这里应该理解为类型重命名。

//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{//观察num1和num2,这两个变量的类型是一样的unsigned int num1 = 0;uint_32 num2 = 0;return 0;
}

9.关键字static

在C语言中:
static是用来修饰变量和函数的

  1. 修饰局部变量-称为静态局部变量
  2. 修饰全局变量-称为静态全局变量
  3. 修饰函数-称为静态函数

修饰局部变量

#include <stdio.h>
void test()
{int i = 1;i++;printf("%d ", i);
}
int main()
{int i = 0;for(i=0; i<10; i++){test();}return 0;
}

#include <stdio.h>
void test()
{//static修饰局部变量static int i = 1;i++;printf("%d ", i);
}
int main()
{int i = 0;for (i = 0; i < 10; i++){test();}return 0;
}

对比代码1和代码2的效果理解static修饰局部变量的意义。
结论:
static修饰局部变量改变了变量的生命周期
让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束。


修饰全局变量

#include<stdio.h>
//add.c
int g_val = 2018;
//test.c
int main()
{printf("%d\n", g_val);return 0;
}

#include<stdio.h>
//代码2
//add.c
static int g_val = 2018;
//test.c
int main()
{printf("%d\n", g_val);return 0;
}

代码1正常,代码2在编译的时候会出现连接性错误。
结论:
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用,不能在其他源文件内使
用。
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,就变成了内部链接属性其他源文件就不能链接到这个静态的全局变量了。

修饰函数

#include<stdio.h>
//代码1
//add.c
int Add(int x, int y)
{return c+y;
}
//test.c
int main()
{printf("%d\n", Add(2, 3));return 0;
#include<stdio.h>
//代码2
//add.c
static int Add(int x, int y)
{return c+y;
}
//test.c
int main()
{printf("%d\n", Add(2, 3));return 0;
}

代码1正常,代码2在编译的时候会出现连接性错误.
结论:
一个函数被static修饰,使得这个函数只能在本源文件内使用,不能在其他源文件内使用。

本质上,static是将函数的外部链接属性变成了内部链接属性,与static修饰全局变量一样。

【C语言】常见关键字相关推荐

  1. 数据库定义语言常见关键字

    基本数据类型: char(n):全称character,固定长度的字符串 varchar(n):全称character varying,指定最大长度的字符串 int:全称integer,整数类型 sm ...

  2. 书接上回———初识C语言2(操作符常见关键字)

    (部分图片来源于@鹏哥C语言)                        一,操作符 单目操作符 现在我们来了解其中一些操作符 1,- 负值:将正变成负,负变成正,跟数学的意思差不多 2,!逻辑操 ...

  3. C语言初步学习笔记——第四节 有符号数与常见关键字

    有符号数--原码反码与补码 1.原码 按照2进制数直接写出,注意首位为符号位 1为负,0为正 -1:10000000 00000000 00000000 00000001 2.反码 在原码的基础上,符 ...

  4. 更易上手的C语言入门级芝士 (3) 常见关键字+define+指针+结构体(超详细)

       目录 1.常见关键字 1.auto,break 2.switch,case,default,break 3.char,int等类型关键字 4.const 5.continue 6.extern ...

  5. C++语言学习(十二)——C++语言常见函数调用约定

    C++语言学习(十二)--C++语言常见函数调用约定 一.C++语言函数调用约定简介 C /C++开发中,程序编译没有问题,但链接的时候报告函数不存在,或程序编译和链接都没有错误,但只要调用库中的函数 ...

  6. java常用方法名_Java语言常见名称有哪些

    Java语言常见名称有哪些 java号称是最强的网络编程语言,那么,Java语言常见名称有哪些?一起来看看. Layout managers布局管理器:布局管理器是一些用来负责处理容器中的组件布局排列 ...

  7. c语言中void f1(),c语言常见笔试题f1ryiedy.doc

    c语言常见笔试题f1ryiedy c语言常见笔试题总结 [1 使用宏] 1.1 #ifdef NDEBUG #define TRACE(S) S #else #define TRACE(S) prin ...

  8. c语言倒序输出英文字母表音标,C语言常见英语词,带音标.doc

    C语言常见英语词,带音标 main [men] 主函数的函数名[?n?mb?] 数字,标号 double [?d?b?l] 表示范围(最大最小值) BASIC [?bes?k] 基本的 include ...

  9. MySQL之DQL(数据查询语言)-常见关键字

    目录 一.简介 二.SELECT 2.1.查询所有 2.2.查询指定的列 2.3.别名 2.4.其他特别使用 三.FROM 3.1.表 3.2.结果集 四.WHERE 五.COUNT 六.LIMIT ...

最新文章

  1. ajax渲染数据到页面_爬虫进阶丨Ajax爬取案例实战
  2. 1 创建一个存储过程,以及对存储过程的调用 MySQL
  3. Nhibernate 3.0 cookbook学习笔记 一对多与多对多映射
  4. WCBuffer合并写
  5. boost::multiprecision模块logged_adaptor相关的测试程序
  6. Windows系统优化12个默认设置
  7. “流动书库”藏书汇总,欢迎借阅
  8. Python周刊518期
  9. 2019年,北上广等一线城市的IT岗位饱和了么?
  10. jxl获取excel超级链接
  11. 女朋友突然天天加班,用python写个定位脚本,直接抓到现场
  12. oracle添加唯一约束
  13. OGNL中#、%和$的用法
  14. (HttpClient技术)(58同城系列)58同城登录
  15. 最适合初学者编写的完整指纹锁代码
  16. 绝对让你怀疑人生的游戏榜,游戏建模跟《人类一败涂地》很相似
  17. python后端工程师_Python 招聘:[字节跳动] 后端开发工程师 | Python 技术论坛
  18. 微服务网关Gateway实战
  19. NTC(负温度)热敏电阻.阻值的计算方式
  20. 达梦数据库如何在线替换dm.key

热门文章

  1. 可以相应中断cpu操作中置标志
  2. POJ 2942 圆桌骑士 (点双学习笔记)
  3. python catia harness_介绍一些CATIA汽车线束设计模块的常用命令
  4. fs.default.name和fs.defaultFS
  5. 地下暗管探测技术方案——探地雷达(暗管探测仪)
  6. 大话重构连载11:小步快跑是这样玩的
  7. 巨头押注的全屋智能,正在驱动海信、华为、小米们「自我革命」
  8. 2015年二本投档线
  9. 黎曼zeta函数不需解析延拓
  10. Proguard的介绍