C语言第四讲,typedef 关键字,以及作用域
C语言第四讲,typedef 关键字,以及作用域
一丶typedef关键字
在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字
例如:
typedef unsigned int DWORD
那么以后,我们定义unsigned int 类型的变量的时候,这不用敲写 unsigned int 了.直接DWORD即可.
例如:
DWORD name = 0;
一般常常用在 结构体的定义,和函数指针上.
例如:
typedef struct MyStruct
{
int a;
int b;
}MyIntStruct;
那么新的类型就是 MyIntStruct ,而这个类型就免去了你每次定义的时候加关键字了.
例如:
int main
{
// struct MyStruct IS;
// 没定义前,要使用上面
MyIntStruct IS;
IS.a = 10;
return 0;
}
二丶作用域
在C语言中,编写的代码有作用域的限制.
作用域是什么?
简而言之,当我们定义变量的时候,这个变量的访问.要在一定区域内才能进行访问.
比如你在A函数定义变量a,在B函数定义变量b,那么B函数是不能使用a变量的.
例如:
#include <stdio.h> void printfB()
{
int b = ;
printf("%d\r\n",b); } void printfA()
{
int a = ;
printf("%d\r\n",a);
}
其中上面是函数作用域, 也就是 { } 块语句包含的.
代码块作用域:
代码块作用域主要靠 { }来区分.
例如:
int main()
{ int a = 10;
{
int a = 11;
printf("%d",a); //块语句包围
}
printf("%d",a);
return 0;
}
如果这样定义,则a不会重定义.且a = 11,在代码执行到 } 结束后.也不复存在了.
文件作用域:
文件作用域就是代码外面定义的. 也就是说全局变量. 全局作用域,在当前文件的任何一个位置都可以访问的.
例如:
int a = 10; //外面声明即可.
int main()
{
printf("%d",a);
return 0;
}
C语言第四讲,typedef 关键字,以及作用域的更多相关文章
- C语言结构体及typedef关键字定义结构体别名和函数指针的应用
结构体(struct)的初始化 struct autonlist { char *symbol; struct nlist nl[2]; struct autonlist *left, *right; ...
- C语言学习及应用笔记之五:C语言typedef关键字及其使用
在C语言中有一个typedef关键字,其用来定义用户自定义类型.当然,并不是真的创造了一种数据类型,而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名.总之,可以使用typede ...
- 逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式
逆向知识第十四讲,(C语言完结)结构体在汇编中的表现形式 一丶了解什么是结构体,以及计算结构体成员的对其值以及总大小(类也是这样算) 结构体的特性 1.结构体(struct)是由一系列具有相同类型或不 ...
- 转:C#精髓 第四讲 GridView 72般绝技
说明:准备出一个系列,所谓精髓讲C#语言要点.这个系列没有先后顺序,不过尽量做到精.可能会不断增删整理,本系列最原始出处是csdn博客,谢谢关注. C#精髓 第四讲 GridView 72般绝技 作者 ...
- PE格式第四讲,数据目录表之导入表,以及IAT表
PE格式第四讲,数据目录表之导入表,以及IAT表 一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的标准PE 那么他到底是怎么去调用的? 他会Call 下边的Jm ...
- C++反汇编第四讲,反汇编中识别继承关系,父类,子类,成员对象
C++反汇编第四讲,反汇编中识别继承关系,父类,子类,成员对象 讲解目录: 1.各类在内存中的表现形式 备注: 主要复习开发知识,和反汇编没有关系,但是是理解反汇编的前提. 2.子类继承父 ...
- python学习第四讲,python基础语法之判断语句,循环语句
目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...
- C语言第十一讲,预处理命令.
C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 ...
- C语言第十讲,枚举类型简单说明
C语言第十讲,枚举类型简单说明 一丶C语言中的枚举类型(ENUM) 在我们实际工作中,或者编写代码中.我们有的时候会用固定的值.而且不是很多. 这个时候就可以使用枚举了.如果我们使用#define显然 ...
随机推荐
- mysql 的 select into 带来的错误数据问题
在写存储过程的时候,会有一个被忽视的问题: 比如 select user_name into @user_name from user where id = 1; 会出现 其实没有 id =1 这条数 ...
- 杨其菊201771010134《面向对象程序设计Java》第二周学习总结
第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...
- Java多线程系列1 线程创建以及状态切换
我们知道线程线程有三种创建方式 1实现Runnable接口 2 继承Thread类 3使用Callable和Future接口创建线程.具体是创建Callable接口的实现类,并实现clall()方法. ...
- [Machine Learning][The Analytics Edge][Predicting Earnings from Census Data]
census = read.csv("census.csv")library(caTools)set.seed(2000)spl = sample.split(census$ove ...
- 【NIFI】 Apache NiFI 之 ExecuteScript处理(二)
本例介绍NiFI ExecuteScript处理器的使用,使用的脚本引擎ECMScript 接上一篇[NIFI] Apache NiFI 之 ExecuteScript处理(一) ExecuteScr ...
- 源码管理工具Git-客户端GitBash常用命令
1.配置用户名和邮箱地址(第一次启动程序时配置,以后使用不用配置)git config --global user.name "dolen"git config --global ...
- python_day1 条件语句
一 流程控制 1.if....else 语句 用法: if 条件: 满足条件执行代码 else: if 条件不满足执行此部分代码 例: a = 10 b = 20 if a>b : pri ...
- noip第18课资料
- channel和Stream的对比
这篇文章主要想总结下NIO的channel的传统io中的stream的差别在哪.网上找了很多文章,都感觉只是说了概念.然后自己大概看了下源码,结合概念,整理一下.有些地方可能不是很准确,也希望可以给点 ...
- Beta冲刺 (4/7)
Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 共享编辑文章的后端数据处理 展示Gi ...