func_a.c
#include <stdio.h>
#include "func_a.h"
void func_a()
{
printf("%s\n", __FUNCTION__);
}
func_b.c
#include <stdio.h>
#include "func_b.h"
void func_b()
{
printf("%s\n", __FUNCTION__);
}
~
include/func_a.h
void func_a();
include/func_b.h
void func_b();
main.c
#include <stdio.h>
#include "func_a.h"
#include "func_b.h"
int main()
{
func_a();
func_b();
return 0;
}
~
Makefile
TGT := hello
SRCS := func_a.c func_b.c main.c
DEP := dep
CFLAGS := -O2 -I./include
LDFLAGS :=
$(TGT): $(SRCS:.c=.o)
$(CC) $(LDFLAGS) -o $@ $^
#$(SRCS:.c=.o):
# $(CC) $(CFLAGS) -c $<
func_a.o: func_a.c include/func_a.h
$(CC) $(CFLAGS) -c $<
func_b.o: func_b.c include/func_b.h
$(CC) $(CFLAGS) -c $<
main.o: main.c include/func_a.h include/func_b.h
$(CC) $(CFLAGS) -c $<
#$(DEP): $(SRCS)
$(DEP): $(SRCS) include/func_a.h include/func_b.h
$(CC) $(CFLAGS) -MM $(SRCS) >$@
@sed -i "s/: / $(@): /g" $@
#func_a.o: func_a.c include/func_a.h
#func_b.o: func_b.c include/func_b.h
#main.o: main.c include/func_a.h include/func_b.h
#dep: main.c func_a.c func_b.c include/func_a.h include/func_b.h
sinclude $(DEP)
#%.o: %.c
# $(CC) -c $<
#func_a.o: func_a.c func_a.h
# $(CC) -c $<
#func_b.o: func_b.c func_b.h
# $(CC) -c $<
#main.o: main.c func_a.h func_b.h
# $(CC) -c $<
clean:
$(RM) $(SRCS:.c=.o) $(TGT) $(DEP)
C语言函数模块化示例
本文介绍了一个简单的C语言程序示例,该程序通过模块化的函数组织代码,包括两个独立的功能函数和一个主函数。每个函数都使用__FUNCTION__宏来自我标识,并通过Makefile进行编译和链接。
532

被折叠的 条评论
为什么被折叠?



