fun.c
#include <stdio.h> #include "head.h" int sum(int a, int b) { printf("welcome call %s, %d + %d = %d\n",__FUNCTION__, a, b, a + b); return a + b; } int mul(int a, int b) { printf("welcome call %s, %d * %d = %d\n", __FUNCTION__, a, b, a * b); return a * b; }
head.h
#include <stdio.h> int sum(int a, int b); int mul(int a, int b);
main.c
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "head.h" typedef struct MyfunInfo { int fun_type; // 函数类型 int a; // 函数的第一个参数 int b; // 第二个参数 char funname[10]; // 函数名称 }MyfunInfo; int main(int argc, char *argv[]) { int a = 2; int i = 0; int a1 = 10, b1 = 5; MyfunInfo funinfo[2]; char *Msg = "I will die !"; //Msg[0] = ‘1‘; if (argc == 3) { a1 = atoi(argv[1]); b1 = atoi(argv[2]); funinfo[0].a = a1; funinfo[0].b = b1; funinfo[1].a = a1; funinfo[1].b = b1; } for (int i = 0; i < 2; i++) { printf("i===%d, LINE=%d\n", i, __LINE__); if (i == 0) { funinfo[i].fun_type = 1; printf("begin call sum\n"); strcpy(funinfo[i].funname, "sum"); sum(funinfo[i].a, funinfo[i].b); } if (i == 1) { funinfo[i].fun_type = 2; //call mul printf("begin call mul\n"); strcpy(funinfo[i].funname, "mul"); mul(funinfo[i].a, funinfo[i].b); } } printf("say bye\n"); return 0; }
(-g是调试选项, 生成的app.out可调试)
gdb app.out
原文:https://www.cnblogs.com/douzujun/p/10584308.html