c语言中有32个单词,针对c有固定含义与用法称为关键字。
1、数据类型关键字(8个)
int 、short 、long、signed、unsigned、char 、float,、double
2、程序控制关键字(10个)
if 、else、switch、case、default、break、do 、while、 for、continue
3、函数及数据存储关键字(6个)
void 、return、auto、register、static、 extern
4、构造数据类型关键字(5个)
struct、union、enum、typedef、sizeof
5、其它3个不常用(3个)
goto、const、 volatile
扩展资料
1、如果要定义一个存放20个英文的字符串,数组的长度应该是20+1,原因以后再讨论。
2、一个中文汉字或全角的标点符号需要两个字符宽度来存放。
3、变量名中的字母是区分大小写的。比如 a 和 A 是不同的变量名,num 和 Num 也是不同的变量名。
define是宏定义,就是替换的意思,他定义的是集合,是整个IO口typedef就是对数据类型的代替,如typedef unsigned int u32就是用u32代替无符号型整数,使用时就是u32 变量,就可以了。
sbit是特殊功能寄存器的一个位声明,如,sbit led P2∧0,定义的是具体的位变量。
typedef用法:
1、用typedef为现有类型创建别名,定义易于记忆的类型名
2、typedef 还可以掩饰复合类型,如指针和数组。
例如,你不用像下面这样重复定义有 81 个字符元素的数组:
只需这样定义,Line类型即代表了具有81个元素的字符数组,使用方法如下:
同样,可以像下面这样隐藏指针语法:
typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。
扩展资料
typedef 有另外一个重要的用途,那就是定义机器无关的类型,例如,你可以定义一个叫 REAL 的浮点类型,在目标机器上它可以获得最高的精度:
typedef long double REAL;
在不支持 long double 的机器上,该 typedef 看起来会是下面这样:
typedef double REAL;
并且,在连 double 都不支持的机器上,该 typedef 看起来会是这样:
typedef float REAL;
你不用对源代码做任何修改,便可以在每一种平台上编译这个使用 REAL 类型的应用程序。唯一要改的是 typedef 本身。
在大多数情况下,甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗
标准库广泛地使用 typedef 来创建这样的平台无关类型:size_t,ptrdiff 和 fpos_t 就是其中的例子。
此外,象 std::string 和 std::ofstream 这样的 typedef 还隐藏了长长的,难以理解的模板特化语法,例如:basic_string,allocator> 和 basic_ofstream>。
参考资料:
#define PINT int
就是把所有的词 PINT 替换成 int ,替换完毕再编译。
typedef int pint; 是语句,由编译器在编译过程中编译处理。
int x; 和
pint x; 的声明是等价的
typedef int pint;
long int x; 声明是可以的,但
long pint x; 不可以。
#define PINT int
long int x; 声明是可以的,
long PINT x; 也是可以的。
从上两种情况对比,你就知道两者的区别
long,short,signed,unsigned 叫 “Modifiers”
const,volatile 叫 “Qualifiers"
const pint p; 锁定 pint 类型,锁定初始化后的指针地址。
const PINT p; 预处理为
const int p; 锁定初始化后的指针指向的值。在C语言的情况下,与C++稍有出入。typedef在结构体定义,还有一些数组等地方都大量的用到。归纳一下: 来源一:Using typedef to Curb Miscreant Code Typedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。本文下面将竭尽全力来揭示 typedef 强大功能以及如何避免一些常见的陷阱。 如何创建平台无关的数据类型,隐藏笨拙且难以理解的语法 使用 typedef 为现有类型创建同义字。 定义易于记忆的类型名 typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于 ''typedef'' 关键字右边。例如: typedef int size; 此声明定义了一个 int 的同义字,名字为 size。注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 size: void measure(size psz); size array[4]; size len = filegetlength(); std::vector<size> vs; typedef 还可以掩饰复合类型,如指针和数组。例如,你不用象下面这样重复定义有 81 个字符元素的数组: char line[81]; char text[81]; 定义一个 typedef,每当要用到相同类型和大小的数组时,可以这样: typedef char Line[81]; Line text, secondline; getline(text); 同样,可以象下面这样隐藏指针语法: typedef char pstr; int mystrcmp(pstr, pstr); 这里将带我们到达第一个 typedef 陷阱。标准函数 strcmp()有两个‘ const char '类型的参数。因此,它可能会误导人们象下面这样声明 mystrcmp(): int mystrcmp(const pstr, const pstr); 用GNU的gcc和g++编译器,是会出现警告的,按照顺序,‘const pstr'被解释为‘char const‘(一个指向 char 的常量指针),而不是‘char '(指向char 的指针)。这个问题很容易解决: typedef const cpstr; int mystrcmp(cpstr, cpstr); // 现在是正确的 记住:不管什么时候,只要为指针声明 typedef,那么都要在最终的 typedef 名称中加一个 const,以使得该指针本身所指对象不会通过指针被修改。 链表中的大概应用 name 保存在结构体单元的name[20] 数组里; typedef struct node { char name[20]; struct node link; }stu; 这是前面定义的结构体变量,一个单元包含两个部分,一个用来存储name的数组name[20],一个用来存放下一个单元地址的指向结构体node的指针。假设该单元的地址是p,那么p->name 表示第一部分name[20]的地址,p->link表示第二部分,作用是存放下一个单元的地址
在C语言中,typedef是一种类型定义关键字,用于为现有的数据类型创建新的类型名。
使用typedef可以将现有的数据类型(如int,float,char等)重新命名为其他名称,或者用现有的数据类型定义新的数据类型。
下面是一个简单的示例,使用typedef将int类型重新定义为myint类型:
现在,可以使用myint代替int来声明变量或函数,例如:
这个定义和下面的定义是等价的:
typedef的主要优点是可以使代码更加清晰易懂,同时可以简化代码中的类型声明。在复杂的程序中,使用typedef可以使代码更加易读,因为可以将较长的数据类型名称缩短为更容易理解的名称。
[code]auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
case:开关语句分支
enum :声明枚举类型
register:声明积存器变量
typedef:用以给数据类型取别名(当然还有其他作用)
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明(也可以看做是引用变量)
return :子程序返回语句(可以带参数,也看不带参数)
union:声明联合数据类型
const :声明只读变量
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环
for:一种循环语句(可意会不可言传)
signed:生命有符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
default:开关语句中的“其他”分支
goto:无条件跳转语句
sizeof:计算数据类型长度
volatile:说明变量在程序执行中可被隐含地改变
do :循环语句的循环体
while :循环语句的循环条件
static :声明静态变量
if:条件语句 [/code]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)