在Linux中编译带有自己编写的头文件的C程序

您所在的位置:网站首页 c语言引用自己的头文件 在Linux中编译带有自己编写的头文件的C程序

在Linux中编译带有自己编写的头文件的C程序

2023-11-17 12:02| 来源: 网络整理| 查看: 265

有三个文件callback.c,callback.h,demo.c。其中callback.h是自己编写的头文件。

在Linux中编译运行demo.c的时候注意也要编译callback.c文件,否则会报错 → 引用未定义的函数register_alarm和hit_alarm

正确编译和运行的方式如下:

gcc demo.c callback.c -o demo

./demo

 

附:几个文件的代码如下【代码源自实验楼】

callback.h

#ifndef __CALLBACK_H__ #define __CALLBACK_H__ #define MAX_ALARMS 10 typedef int (*alarm)(int type); alarm alarm_list[MAX_ALARMS]; void register_alarm(alarm a); int hit_alarm(int index); #endif // __CALLBACK_H__

callback.c

​#include "callback.h" int index_total = 0; void register_alarm(alarm a){ if ( index_total < MAX_ALARMS ) alarm_list[index_total++] = a; } int hit_alarm(int index){ if ( index < 0 || index >= MAX_ALARMS) return 1; if ( index >= index_total ) return 1; (*alarm_list[index])(index); return 0; } ​

demo.c

#include #include #include "callback.h" int alarm1(int type){ printf("Alarm1:%d\n", type); return 0; } int alarm2(int type){ printf("Alarm2:%d\n", type); return 0; } int alarm3(int type){ printf("Alarm3:%d\n", type); return 0; } int main() { register_alarm(alarm1); register_alarm(alarm2); register_alarm(alarm3); hit_alarm(0); hit_alarm(1); hit_alarm(2); return 0; }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3