精华内容
下载资源
问答
  • 字符集C语言的字符集分为六类:标识符,关键字,运算符,分隔符,...C语言一共有32个关键字(都小写),不用特别记忆。在之后的编码中,天天都要和这些关键字打交道,并且他们能编辑器里面(如Sublime Text,Notepad+...

    字符集

    C语言的字符集分为六类:标识符关键字运算符分隔符常量注释符。本讲讲关键字与标识符,其余几个平时用的过程中就能理解。

    关键字

    在C语言中,系统已经占用了一些字符,这些字符有特殊含义,我们不能进行重复命名,这就是关键词。

    C语言一共有32个关键字(都是小写),不用特别记忆。在之后的编码中,天天都要和这些关键字打交道,并且他们能编辑器里面(如Sublime Text,Notepad++等)都会高亮进行显示(当然,IDE也会高亮显示)。

    auto自动     double 双精度    int整数     struct结构    break 打断      else否则     longswitch切换       case情况     enum枚举     register 注册    typedef 类型定义            char字符     extern外部       return返回 union联合    const恒定        float浮点数  shortunsigned无符号   continue继续  forsigned有符号     void空白default默认  goto去           sizeof 大小 volatile暂态的  doif如果 whilestatic静态的

    dbf5a58a905baf9b4cd16b7ac9e261df.png

    标识符

    在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。

    标识符由数字0~9、字母a~z A~Z、下划线组成_

    命名规则:

    1.不能以数字开头,错误示例:0abc2.不能与关键字重复,错误示例:int3.区分大小写abcABC不同;4.不能出现除数字、字母、下划线以外的字符,错误示例:a!bc

     变量命名规则

    1)命名应当直观且可以拼读,可望文知意,便于记忆和阅读
    标识符最好采用英文单词或其组合,不允许使用拼音。程序中的英文单词一般不要太复杂,用词应当准确。
    2)命名的长度应当符合“min-length && max-information”原则
    C 是一种简洁的语言, 命名也应该是简洁的。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
    另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
    3)当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如:
       int CurrentVal;
    这样的名字看起来比较清晰,远比一长串字符好得多。
    4)尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。比如驱动开发时为管脚命名,非编号名字反而不好。
    初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹。这个习惯初学者一定要改过来。
    5)对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符)。
    (GUI_ ,etc)标识符的命名规则:
    6)标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀。

    7)含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组。例

    变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地];

    函数含义标识符构成:动词(一般现时)+目标词+[状语]+[目的地];

    《c语言简明教程》

    01-大学生C语言第一课,C语言的过去与未来

    02-Dev C++  安装及使用方法教程-超详细

    03-C语言的第一个简单实例

    46cb3d8fc147e97fafeccad882fc6ba2.png

    IT入门 感谢关注

    程序员题库→程序员用的单词表→练习地址:www.520mg.com/it

    ?戳

    展开全文
  • volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供...

    面试点:解读关键字volatile

    C语言面试题分析之一

    一.volatile是什么?
    volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

    二.编译器优化是什么意思?
    int i = 5;

    int a = i;

    ……

    int b = i;

    编译器发现两次从i读数据的代码之间,并没有对i进行过操作,它会自动把上次读的数据放在b中,而不是重新从i里面读;

    三.哪些情况,改变了内存中变量的值,编译器不知道?
    1.多线程应用中被几个任务共享的变量;

    2.一个中断服务子程序中会访问到的非自动变量;

    3.并行设备的硬件寄存器(如:状态寄存器);

    四.何时需要使用volatile这个关键字?
    嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用会经常要求定义为volatile类型的变量。

    五.使用volatile带来什么好处?
    volatile int nCount;

    当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

    六.3个经典的volatile问题
    1). 一个参数既可以是const还可以是volatile吗?解释为什么。
    2). 一个指针可以是volatile 吗?解释为什么。
    3). 下面的函数有什么错误:
    int square(volatile int *ptr)
    {
    return *ptr * *ptr;
    }
    下面是答案:
    1). 可以是。例如对于只读的状态寄存器而言,如果它仅仅是volatile类型,那么它还是可能被意想不到的改变。但它还是const的时候,程序就不应该试图去修改它
    2). 可以是的。

    尽管这种情况并不常见,但它还是可以。一个例子就是:

    当一个中断服务子程序企图去修改一个指向一个buffer指针的时候。
    3). 这段代码可能有点恶作剧的味道。但它很好说明volatile类型参数的含义和作用。

    这段代码的目的是用来返指针*ptr所指向的值的平方,

    但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
    int square(volatile int *ptr)
    {
    int a,b;
    a = *ptr;
    b = *ptr;
    return a * b;
    }
    由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不
    是你所期望的平方值!正确的代码如下:
    long square(volatile int *ptr)
    {
    int a;
    a = *ptr;
    return a * a;
    }

    七.总结
    1.使用volatile关键字修饰的变量,可以避免编译器优化;

    2.使用volatile关键字修饰的变量,每次都是重新读取内存中的值,而不是使用保存在寄存器里的值了;

    3.编译器优化的做法是:

    int i = 5;

    int a = i;

    ……

    int b = i;

    编译器发现两次从i读数据的代码之间,并没有对i进行过操作,它会自动把上次读的数据放在b中,而不是重新从i里面读。
     ———————————————— 
    版权声明:本文为CSDN博主「littletigerat」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/littletigerat/article/details/6439413

    展开全文
  • volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供...

    面试点:解读关键字volatile

    C语言面试题分析之一

    一.volatile是什么?

    volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

    二.编译器优化是什么意思?

    int i = 5;

    int a = i;

    ……

    int b = i;

    编译器发现两次从i读数据的代码之间,并没有对i进行过操作,它会自动把上次读的数据放在b中,而不是重新从i里面读

    三.哪些情况,改变了内存中变量的值,编译器不知道?

    1.多线程应用中被几个任务共享的变量;

    2.一个中断服务子程序中会访问到的非自动变量;

    3.并行设备的硬件寄存器(如:状态寄存器);

    四.何时需要使用volatile这个关键字?

    嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所用会经常要求定义为volatile类型的变量。

    五.使用volatile带来什么好处?

    volatile int nCount;

    当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

    六.3个经典的volatile问题

    1). 一个参数既可以是const还可以是volatile吗?解释为什么。
    2).
    一个指针可以是volatile 吗?解释为什么。
    3).
    下面的函数有什么错误:
    int square(volatile int *ptr)
    {
    return *ptr * *ptr;
    }
    下面是答案:
    1).
    可以是。例如对于只读的状态寄存器而言,如果它仅仅是volatile类型,那么它还是可能被意想不到的改变。但它还是const的时候,程序就不应该试图去修改它
    2).
    可以是的。

    尽管这种情况并不常见,但它还是可以。一个例子就是:

    当一个中断服务子程序企图去修改一个指向一个buffer指针的时候。
    3).
    这段代码可能有点恶作剧的味道。但它很好说明volatile类型参数的含义和作用。

    这段代码的目的是用来返指针*ptr所指向的值的平方,

    但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
    int square(volatile int *ptr)
    {
    int a,b;
    a = *ptr;
    b = *ptr;
    return a * b;
    }
    由于*ptr的值可能被意想不到地该变,因此ab可能是不同的。结果,这段代码可能返不
    是你所期望的平方值!正确的代码如下:
    long square(volatile int *ptr)
    {
    int a;
    a = *ptr;
    return a * a;
    }

    七.总结

    1.使用volatile关键字修饰的变量,可以避免编译器优化;

    2.使用volatile关键字修饰的变量,每次都是重新读取内存中的值,而不是使用保存在寄存器里的值了

    3.编译器优化的做法是:

    int i = 5;

    int a = i;

    ……

    int b = i;

    编译器发现两次从i读数据的代码之间,并没有对i进行过操作,它会自动把上次读的数据放在b中,而不是重新从i里面读

    展开全文
  • static全局变量与普通的全局变量的区别是什么?  全局变量分为两种: 1.statict全局变量; 2.普通的全局变量; 存储方式: 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。 全局变量本身...

    面试点:关键字static

    C语言面试题分析之三

    一.            static全局变量与普通的全局变量的区别是什么?  

    全局变量分为两种:

    1.statict全局变量;

    2.普通的全局变量;

    存储方式:

    全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。

    全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。

    作用范围:

    普通的全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,普通的(也就是非静态)的全局变量在各个源文件中都是有效的。

    而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。 

     

    二.static局部变量和普通局部变量的区别是什么?

    初始化  

    static局部变量只被初始化一次,下一次依据上一次结果值;

    三.static函数与普通函数的区别是什么?

    内存

    static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

    作用域

    static函数的作用域仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static)

    普通函数如何申明

    1.普通函数仅仅是在当前源文件中使用的:

    只需要在当前源文件中声明和定义。

    2.普通函数需要在当前源文件以外的其他文件中使用的:

    应该在一个头文件中声明,要使用这些函数的源文件要包含这个头文件

    四.总结篇

    把局部变量改变为静态变量后,是改变了它的存储方式,即改变了它的生存期。

    把全局变量改变为静态变量后,是改变了它的作用域, 限制了它的使用范围。

    展开全文
  • volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供...
  • integer是不是关键字要看看是什么语言,每种语言不一样,例如 integer 是 delphi的保留字 却不是 c语言的保留字。Integer为什么不是Java关键字?Integer 是数据类型不是C的关键字,它就一个英文单词,本意为整数,可...
  • 什么是c语言中的扩展关键字 什么是C中的关键字? (What are Keywords in C?) Keywords are preserved words that have special meaning in C language. The meaning of C language keywords has already been ...
  • volatile 影响编译器编译的结果,指出,volatile 变量随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关...
  • e68a843231313335323631343130323136353331333433626563关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字。系统定义了以下关键字:Const,Dim,As,Mod,And,Or,Not,If,Else,Stop,End,...
  • C语言 关键字、标识符、注释

    千次阅读 2016-01-10 21:22:49
    1.什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。   2.一共有哪些关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int struct ...
  • C语言关键字

    2018-08-03 13:19:44
    什么是关键字C语言中具有特殊意义的且不允许用作标识符的单词,称为关键字或保留字 通常用于编辑的文本编辑器都会高亮显示这些关键字,共有32个 【分类】 数据类型关键字(12个) 控制语句关键字(12...
  • 导读: 在C语言中经常会遇到volatile关键字,一直看不懂加了这个和不加会有什么样的区别,哪位大侠能否给点解释!!!! zhxin999秀才 二级 最佳答案 volatile 影响编译器编译的结果,指出,volatile 变量随时可能发生...
  • 关键字是C语言本身征用,不能被做其他用途的特殊单词 2)C语言中关键字有多少个? A.有32个关键字 B.主要包括:auto double int struct break else long switch case enum register typedef char extern ...
  • c语言关键字

    2015-06-05 14:10:46
    答:关键字是程序设计中代码必须包含的部分,编译器在编译C代码的时候,必然要将C代码进行断句,将代码分割成不同部分,将这些部分分别进行解析和编译。 int a = 10; int是关键字,编译器看到它出现,会将它后面的...
  • 今天我们来说一个内容,就是void这个关键字,这个的字面意思 无类型,void*则为无类型指针。C语言volatile修饰的到底什么鬼?原来它在嵌入式开发必须掌握的!而我们不能写vo...
  • 1.volatile和什么有关 百度翻译是这样子翻译volatile的: 图1-1 百度翻译volatile截图 ...volatile属于C语言的关键字,《C Primer Puls》 是这样解释关键字的:关键字是C语言的词汇,由于编译器...
  • C语言:关键字

    2014-11-01 00:44:00
    什么是关键字? C语言是由英语单词构成的,其中有些单词被赋予了特殊的含义,那么这些英语单词就是关键字 关键字就像十八般武器一样,每个有每个的作用,学好C语言的关键 C语言系统提供的32个关键字: nauto ...
  • C语言关键字详解

    千次阅读 多人点赞 2019-03-09 11:32:38
    在这里先普及一下,在我们C语言中一共有32个关键字,可能有几个在我们学习的过程中不太常用,但是大多数都我们常用的,下来我们先来罗列一下着32个关键字都有什么,再来一一说一下他们的用法: auto int...
  • C语言】03-关键字、标识符、注释

    千次阅读 2013-09-30 23:07:59
    1.什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。   2.一共有哪些关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int ...
  • 关键字概述很多朋友看到这儿可能会有疑问,往往其它讲C语言的书籍都从HelloWorld,数据类型开始C语言学习的,为什么我们要从C语言关键字开始呢?关于这点,我有两点需要说明:本章节面向的读者对象有一定的...
  • C语言关键字总结

    2016-11-07 16:12:24
    要学习c语言关键字,首先要知道什么是c语言关键字。 简单的理解,c语言关键字就是由c标准规定的、具有特殊用途的单词。那么在c语言中都有哪些标准呢,这里我简单介绍两个(看《c和指针》的小伙伴应该会经常看到这两...
  • 1. 什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。 2. C语言关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int struct break else long...
  • 什么是万能指针?万能指针其实就是void *类型的指针,而void *指针一般被称为通用指针或叫泛指针。它是C语言关于纯粹地址的一种约定。当某个指针void型指针时,所指向的对象不属于任何类型。 因为void指针不属于...
  • 1.什么是关键字 关键字就是C语言提供的有特殊含义的符号,有些地方也叫做“保留字”。   2.一共有哪些关键字 C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义。 auto double int struct ...
  • 往往就是从C语言关键字入手,因为C语言关键字蕴含了C语言的全部的词汇,囊括了C语言里大量知识要点,从C语言关键字开刀,首先可以对你之前所学知识进行复习,其次,切磋一下和作者有什么不同的见解,废话少说,...
  • 以下红色标注为C++中含有但C语言没有的关键字(根据c++98中提出C++包含63个关键字) ​2、源文件区别 C语言文件后缀为.c,c++原文件名后缀为.cpp 如果在创建源文件时什么都不给,默认.cpp 3.返回值不同 C语言中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,754
精华内容 701
关键字:

关键字是什么c语言

c语言 订阅