attribute关键字可以设置函数属性,如果设置成构造函数,则先于主函数执行

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <queue>
#include <stack>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <vector>
using namespace std;void func1() {printf("function 1\n");
}void func2() {printf("function 2\n");
}void func3() {printf("function 3\n");
}void func4() {printf("function 4\n");
}void (*func[4])();//定义函数指针数组__attribute__((constructor))
//这个函数的作用是初始化一个函数指针数组(使对应的函数指针指向对应的函数)
//也就是把四个功能函数地址存储到一个存储区中(注册函数)
void init_func() {func[0] = func1;func[1] = func2;func[2] = func3;func[3] = func4;return ;
}int main() {srand(time(0));func[rand() % 4]();//随机执行四个功能函数之中的一个return 0;
}

attribute关键字相关推荐

  1. Robot Framework(4)——Selenium2Library关键字

    在第一讲的时候,已经安装了Selenium2Library这个库,这一篇主要来整理介绍一下Selenium2Library中的常用关键字,为我们之后的web自动化打好基础 一.browserManag ...

  2. 计算机语言属性的定义,Attribute

    Attribute (计算机语言) 语音 编辑 锁定 讨论 上传视频 元素用于向元素添加属性. 注释: 元素会替换名称相同的已有属性. 中文名 Attribute 注    释 元素会替换名称相同的已 ...

  3. 语言中如何在main函数开始前执行函数

    在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下: #include <stdio.h> __attribute((construc ...

  4. 深入理解SELinux SEAndroid

    按哥的习惯,应该是全部洗剪吹完后再发,不过今年是马年,什么都强调 马上.所以 现在就先奉献 马上有第一部分  祝各位同仁,朋友 马年快乐. 深入理解SELinux SEAndroid SEAndroi ...

  5. ARM Cortex-M3初探

    ARM初探–alias alias是为老函数,取一个新的名字! attribute关键字来描述函数,变量和数据类型的属性,用于编译器对源代码的优化 #include <stdio.h> i ...

  6. GNU __attribute 详解

    GNU C的一大特色(却不被初学者所知)就是__attribute__机制. __attribute__可以设置函数属性(Function Attribute).变量属性(Variable Attri ...

  7. 在main函数前后执行的函数之 C语言

    在gcc中,可以使用attribute关键字,声明constructor和destructor,来指定了函数在main之前或之后运行,代码如下: 1 #include <stdio.h> ...

  8. RF新手常见问题总结--(基础篇)

    RF新手常见问题总结--(基础篇) 学RF快一年了,经常碰到一些问题,有些同学也经常问到,这里总结一些,期望有人后续再补充,主要是响应群里--雪霁大神的号召,技术共享.废话少说,直接上干货了. 1. ...

  9. C语言中总是从main函数开始执行函数吗?

    答案是否定的! 在gcc中,可以使用attribute关键字,声明constructor和destructor,代码如下: [cpp] view plaincopy #include <stdi ...

最新文章

  1. tesseract3.01的训练和使用
  2. Grid R-CNN解读:商汤最新目标检测算法,定位精度超越Faster R-CNN
  3. 推荐一个好用的Chrome扩展应用,管理新建标签页面的
  4. 正则表达式的基本语法
  5. virtualbox启用远程桌面
  6. C# 利用反射动态将字符串转换成属性对应的类型值
  7. 杭电 OJ 提交代码需要注意的问题
  8. 详解云原生应用实践与未来趋势
  9. 开源跨平台计算机视觉库OpenCV 4.0正式发布
  10. Navicat for MySql管理工具 中文破解版
  11. swpu计算机科学学院推荐免试,西南石油大学2020届本科毕业生推荐免试硕士研究生结果公示 - 千里马招标网...
  12. 王阳明心学的最高境界
  13. poi excel 插入批注
  14. GOlang将华氏温度转换为摄氏温度的函数
  15. 必修三计算机选修三知识点总结,高二必修三物理知识点总结
  16. iOS开发三方资源 - 欲先攻其事必先利其器
  17. JQuery判断字符串是否是数字
  18. 第九届蓝桥杯单片机完整程序
  19. 如何将C 项目部署到云服务器上,如何将C 应用程序放在云服务器上
  20. Hibernate错误:java.lang.NoClassDefFoundError: Could not initialize class com.zhbit.util.HibernateUtils

热门文章

  1. linux nginx svn 更新前端代码
  2. 认识zookeeper
  3. 操作系统实验报告7:进程间通信—共享内存。实现一个带有n个单元的线性表的并发维护。
  4. [网络安全自学篇] 三.Burp Suite安装配置、Proxy基础用法及流量分析示例
  5. 【数据结构与算法】之深入解析“24点游戏”的求解思路与算法示例
  6. iOS逆向之hook框架frida的安装和使用
  7. 763. Partition Labels 划分字母区间
  8. 404. Sum of Left Leaves 左叶子之和
  9. 13.2.3 视图层——视图函数
  10. 如何设置树莓派 VNC 的分辨率