前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言第四讲,typedef 关键字,以及作用域

C语言第四讲,typedef 关键字,以及作用域

作者头像
IBinary
发布2018-03-30 12:08:41
9280
发布2018-03-30 12:08:41
举报
文章被收录于专栏:逆向技术逆向技术

        C语言第四讲,typedef 关键字,以及作用域

一丶typedef关键字

  在C语言中,有typedef 关键字,这个关键字的作用就是允许你为类型定义一个新的名字,也就是 起个别的名字

例如:

代码语言:javascript
复制
typedef unsigned int DWORD

那么以后,我们定义unsigned int 类型的变量的时候,这不用敲写 unsigned int 了.直接DWORD即可.

例如:

代码语言:javascript
复制
DWORD name = 0; 

一般常常用在 结构体的定义,和函数指针上.

例如:

代码语言:javascript
复制
typedef struct MyStruct
{
   int a;
   int b;    
}MyIntStruct;  

那么新的类型就是  MyIntStruct ,而这个类型就免去了你每次定义的时候加关键字了.

例如:

代码语言:javascript
复制
int main
{
   // struct MyStruct IS;
   // 没定义前,要使用上面
   MyIntStruct  IS;
   IS.a = 10;      
   return 0;  
} 

二丶作用域

在C语言中,编写的代码有作用域的限制.

作用域是什么?

  简而言之,当我们定义变量的时候,这个变量的访问.要在一定区域内才能进行访问. 

比如你在A函数定义变量a,在B函数定义变量b,那么B函数是不能使用a变量的.

例如:

代码语言:javascript
复制
#include <stdio.h>

void printfB()
{
   int b = 11;
    printf("%d\r\n",b);
   
}
      
void printfA()
{
  int a = 10;
  printf("%d\r\n",a);
}

其中上面是函数作用域,  也就是 {    } 块语句包含的.

代码块作用域:

  代码块作用域主要靠 { }来区分.

例如:

代码语言:javascript
复制
int main()
{

   int a = 10;
   {
      int a = 11;
      printf("%d",a);    //块语句包围
   } 
   printf("%d",a);
   return 0;
} 

如果这样定义,则a不会重定义.且a = 11,在代码执行到 } 结束后.也不复存在了.

文件作用域:

  文件作用域就是代码外面定义的. 也就是说全局变量. 全局作用域,在当前文件的任何一个位置都可以访问的.

例如:

代码语言:javascript
复制
int a = 10;  //外面声明即可.
int main()
{
   printf("%d",a);
   return 0;
} 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •         C语言第四讲,typedef 关键字,以及作用域
    • 一丶typedef关键字
      • 二丶作用域
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档