当前位置: 首页 > news >正文

专做畜牧招聘网站的淘宝网(淘宝网)

专做畜牧招聘网站的,淘宝网(淘宝网),原创网络,哪个医学网站大夫可以做离线题劝人的话就像清晨的闹钟,只对别人有用,却永远叫不醒自己。 ----小新 一.预处理指令 (1)#define & typedef #define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换&…

         劝人的话就像清晨的闹钟,只对别人有用,却永远叫不醒自己。

                                                                                                                                          ----小新

一.预处理指令

(1)#define & typedef     

        #define是C语言中定义的语法,是预处理指令,在预处理时进行简单而机械的字符串替换,不作正确性检查,只有在编译已被展开的源程序时才会发现可能的错误并报错。

        typedef是关键字,在编译时处理,有类型检查功能。它在自己的作用域内给一个已经存在的类型一个别名,但不能在一个函数定义里面使用typedef。用typedef定义数组、指针、结构等类型会带来很大的方便,不仅使程序书写简单,也使意义明确,增强可读性。

例如:

#define PI 3.14159
typedef struct {  char name[50];  int age;  
} Student; 

注解:

        PI就被定义为一个常量,值为3.14159。

(2) #include

   这是预处理指令中最常用的函数之一,用于包含其他文件。

例如:

#include <stdio.h>

注解:

        这个指令就会包含标准输入输出库。


(3)#if#ifdef#ifndef#else#elif#endif

   这些是条件编译的预处理指令,用于有条件地编译程序。

例如:

#if defined(DEBUG) 
// 只有在定义了DEBUG时才会编译这部分代码 
#endif

(4)#undef

    这个预处理指令用于取消已经定义的宏。

例如:

#define PI 3.14159 
#undef PI

注解:

        PI就被取消定义了。


(5) #line#error#pragma

    这些是比较特殊的预处理指令,#line用于改变编译器中的行号和文件名跟踪,#error用于让编译器生成错误信息,#pragma用于实现一些特定的编译器特性。这些指令的使用往往依赖于具体的编译器实现。

(6)__DATE____TIME____FILE____LINE____func__

         这些是C99引入的预定义的宏,分别代表当前日期、时间、源文件名、行号和函数名。例如,__LINE__就会在编译时被替换为当前源代码行号。

(7)__attribute__((...))

        这个是在GCC和一些其他C编译器中使用的特性,用于设置函数属性、变量属性等。例如,__attribute__((noreturn))就表示这个函数不会返回。

二.寄存器存储

(1) register

        1.建议寄存器存储

        通过使用 register 关键字,程序员可以向编译器建议将某个变量存储在寄存器中。寄存器是位于中央处理单元(CPU)内部的存储区域,它的访问速度比内存要快得多。因此,将变量存储在寄存器中可以提高程序的执行速度。

register int counter; // 建议编译器将 counter 存储在寄存器中

        2.编译器决定

        需要强调的是,register 只是一个建议,而非强制要求。编译器可以选择是否将变量存储在寄存器中。通常,编译器会根据代码的复杂性和寄存器的可用性来决定是否采纳这些建议。

        3.限制使用

        register 变量通常有一些限制,例如不能取地址或使用指针对其进行操作,因为寄存器变量不在内存中有地址。这也意味着 register 变量通常不能用于需要取地址的操作,如指针和数组的地址计算。

        4.性能提升

        使用 register 可以提高程序的性能,特别是在循环中对频繁访问的变量使用 register 可能会产生显著的性能提升。

 

三.共享全局变量

1.变量声明

        通过使用 extern,你可以在一个源文件中声明一个在另一个源文件中定义的全局变量,以便在当前源文件中使用它,而不需要重新定义。这对于在多个文件中共享全局变量非常有用。

// File1.c
int globalVar; // 定义全局变量// File2.c
extern int globalVar; // 声明在其他文件中定义的全局变量

2.函数声明

        类似于变量,你也可以使用 extern 来声明在其他源文件中定义的函数。这允许你在当前文件中使用这些函数而无需重新定义它们。

// File1.c
void someFunction(); // 定义函数
// File2.c
extern void someFunction(); // 声明在其他文件中定义的函数

3.解决多文件编程

        extern 用于多文件编程中,特别是当你将程序拆分成多个源文件时,有助于确保这些文件之间的全局变量和函数能够正确共享。它允许你在一个文件中定义,而在其他文件中声明和使用这些全局实体。

4.避免重复定义

        extern 声明允许你在一个文件中定义全局变量或函数,而在其他文件中声明,从而避免多次定义相同的变量或函数,这将导致链接错误。

 

http://www.yayakq.cn/news/396574/

相关文章:

  • 门户网站建设意见做网站找哪家又便宜又好
  • 网站设计公司 杭州对外宣传推广方案
  • 建手机wap网站大概多少钱建站快车加盟
  • 网站开发环境搭建章节教材书电子商务基础网站建设与维护单项选择题
  • 做视频资源网站有哪些拼多多代运营公司十大排名
  • 网站建设尾款收取eclipse 网站开发
  • 织梦网站如何做404网站做线支付平台系统多少钱
  • 做网站需要理解什么学校加强网站建设
  • 深圳手机端网站建设专业东莞搜索seo优化排名
  • 网站备案是针对空间还是域名做网站有意思吗?
  • 深圳建网站多少钱公司做网站推广有效果吗
  • 烟台专业网站建设临夏市建设局网站
  • 网站导航栏不显示标志与设计
  • 2017优惠券网站怎么做杭州市前10电商代运营公司
  • 天津做网站一般多少钱汉中做网站公司
  • 电子商务网站的建设与维护拼多多app官方下载
  • 浪漫做爰网站好网站建设公司地址
  • seo快速排名利器有利于seo优化的是
  • 黑帽seo怎么做网站排名帮别人做网站后期维护
  • 网站建设管理存在问题30天网站建设全程实录 pdf
  • 怎么注册自己网站网站设计大概多少钱
  • 网站后台怎么打开wordpress视频 小程序
  • 网站建设网站徒手整形游戏排行榜前十名大型网络游戏
  • 工程建设网站导航图网站开发前端学习
  • 目录搜索引擎网站wordpress自媒体博客模板
  • 关于网站开发的商业计划书慈利做网站在哪里
  • 建设银行演示网站网络营销策划书应该怎么写
  • 代发货网站系统建设企业网站排名软件度智能优化
  • 哪个平台做网站比较好企业网站自助建站上海
  • 建设法律法规文本查询网站html个人网站模版