C语言析构函数

C语言里面的结构(struct)只是吧各种不同的数据类型整合在一起,变成一种程序员自定义的数据列行。

结构是完全开放的,任意一个函数,只要能访问到这个结构,就可以随意操作其中的数据。

而类(class)除了是将不同的数据类型以私有的形式(private)组合在一起之外,还提供了访问这些数据的方法(即类函数)。

这样,就是类具备了封装的功能,有效的保护了数据。

同时,类还有构造,析构,继承和多态等多种优点。这些优势,使得C++的应用越来越广泛。

在gcc下可以使用关键字__ attribute__指定构造函数,这些构造函数由编译器进行处理,在执行main函数之前,就会执行。

__attribute__使用方法:

void __attribute__((constructor)) function(void)

#include

void __attribute__((constructor)) test(void) {

printf("This is a constructor function: test\n");

}

int main() {

printf("This is main function\n");

return 0;

}

编译并运行可以看到 在main函数执行之前,执行了test函数。

c语言析构函数的作用,C语言析构函数相关推荐

  1. c语言fun的作用,c语言fun函数有什么作用

    c语言fun函数有什么作用 c语言fun函数的作用是被主函数所调用,来定义一个函数或方法,这样在引用时可以用fun表示,比如[int fun(int x,int y)]. c语言fun函数的作用是: ...

  2. C语言文件缓冲区作用,C语言 文件操作4--文件结构体FILE的理解以及缓冲区再讲...

    //文件结构体FILE的理解以及缓冲区再讲 #include #include //要点:文件结构 //struct _iobuf { // char *_ptr; ------当前缓冲区内容指针 / ...

  3. %2d在c语言中什么作用,C语言中的 %2d是什么意思

    修饰符格式说明.意义M%md以宽度m输出整型数,不足m时,左补空格0m%0md以宽度m输出整型数,不足m时,左补零m,n%m.nf以宽度m输出实型小数,小数位为n位例如:设i=123,a=12.345 ...

  4. c语言 const常量作用,C语言 const常量讲解

    //const的本质 //const本质上是伪常量,无法用于数组初始化以及全局变量初始化 //原因在于const仅仅限定变量无法直接赋值,但是却可以通过指针间接赋值 //例如局部常量在栈区,而不在静态 ...

  5. step在c语言中什么作用,C语言step-by-step(二)(数据类型)

    第2章:数据类型 先介绍一些计算机指令简单的知识: 大家都知道我们的计算机有硬盘.有内存这两样东西,都属于存储器,但是硬盘属于在掉电后不丢失信息,一般我们把资料存放在硬盘:然而内存掉电会丢掉所有信息, ...

  6. c语言算术运算的作用,C语言算术运算符和算术表达式

    C语言算术运算符和算术表达式 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.下面和大家分享一些C语言算术运算符和算术表达式,一起来看看吧! 一. 基本的算术运算符 (1)+(加法运算 ...

  7. c语言get()的作用,c语言get函数的用法有哪些

    C语言中gets从标准输入设备读字符串函数,可以无限读取,不会判断上限,今天学习啦小编在这里为大家介绍C语言get函数的用法,欢迎大家阅读! c语言get函数的用法:int getc(FILE *st ...

  8. c语言选择结构作用,c语言选择结构程序设计教案

    <c语言选择结构程序设计教案>由会员分享,可在线阅读,更多相关<c语言选择结构程序设计教案(16页珍藏版)>请在人人文库网上搜索. 1.选择结构程序设计(一)说明内容1关系运算 ...

  9. c语言record的作用,C语言基础 record 2-指针,结构体,链表,文件的输入输出

    指针: 1.指针的概念: 内存区的每一个字节有一个编号,这就是 '地址',由于通过地址能找到所需的变量单元,而地址指向该变量单元,所以将地址形象化称为 '指针'.C/C++中是可多继承的指针,而Jav ...

最新文章

  1. labview运行excel宏_LabVIEW编程实例:电子表格文件的读写操作方法
  2. 请问为什么像cellspacing=0和bgcolor=red的属性在style里面不起作用呢?
  3. 中3d库后接负载_什么是假负载?如何利用假负载维修变频器?
  4. 手机壳鸿蒙,手机壳黑榜发布 真相太惊人!
  5. hdu 1250 Hat's Fibonacci
  6. 【开发者成长】Vue.js 中有哪些性能陷阱
  7. mac安装仿宋GB2312字体
  8. ubuntu 16.04下设置静态IP地址
  9. 支付宝支付原理以及测试接口获取支付url
  10. eMarketer:女性网民更偏爱网络社区
  11. win10管理员已阻止你运行此应用解决方法
  12. 如何在python上安装安装包(python 3.9 环境 PyCharm pillow安装包为例)
  13. Deeplung代码复现(一)
  14. 通俗易懂——css长度单位:px、em、rem、vh、vw、in、...
  15. 未来已来——云应用引擎CAE开启应用Serverless新时代
  16. 经纬度转换为UTM坐标
  17. DDP及其在pytorch中应用
  18. JQuery获取父,子,兄弟节点
  19. TEC1401.Report开发技术总结 - 第九章 使用BI Publisher开发报表-使用BI Publisher创建RTF模板的语法(4/5)
  20. Rust 14: 文件读写

热门文章

  1. 线性分类(五)-- 朴素贝叶斯法
  2. 多开MATLAB并行计算
  3. Java后台实现多层级目录树的构建
  4. 查看nginx的最大连接数及当前最大连接数
  5. Linux下selinux的初级管理
  6. charmm在Linux中的使用方法,科学网—Gromacs中添加CHARMM力场 - 贾壮的博文
  7. Ubuntu下Nginx安装与配置---kalrry
  8. 微信支付之JSAPI支付开发流程
  9. antdpro学习笔记(一)
  10. 四则运算网页版--结对项目