如何将一个C语言头文件中的函数改写为一个长尾词的?

2026-04-11 23:260阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计922个文字,预计阅读时间需要4分钟。

如何将一个C语言头文件中的函数改写为一个长尾词的?

(C语言)头文件实现的函数+在C语言中,有时为了方便(方便的同义词是偷懒),函数就直接在头文件中实现了。那么这样子有没有问题呢?+当然有。这种做法会导致编译时的依赖问题,特别是当函数的实现细节需要修改时。下面举一个例子,这个例子只有3个字。+例子:在头文件中直接实现了一个打印函数。


(C语言)头文件实现的函数

在C语言里面,有时候为了方便(方便的同义词是偷懒),函数就直接在头文件里面实现了。那么这样子有什么问题呢?

下面举个例子,这个例子只有3个文件

/* fun.h */ #ifndef FUN_H #define FUN_H void base(){}; void fun(); #endif /* fun.c */ #include "fun.h" void fun() { base(); } /* main.c */ #include "fun.h" int main() { fun(); return 0; }



好,然后gcc一下

gcc -c main.c (通过)
gcc -c fun.c (通过)
gcc -o main main.o fun.o (链接错误)

出现错误...“base()函数重定义!”

为什么重定义呢?因为#include是预处理部分,在编译之前由预处理程序在这个部分复制头文件的内容过来。所以在编译时候,main.o和fun.o文件都有base()函数的定义。

阅读全文

本文共计922个文字,预计阅读时间需要4分钟。

如何将一个C语言头文件中的函数改写为一个长尾词的?

(C语言)头文件实现的函数+在C语言中,有时为了方便(方便的同义词是偷懒),函数就直接在头文件中实现了。那么这样子有没有问题呢?+当然有。这种做法会导致编译时的依赖问题,特别是当函数的实现细节需要修改时。下面举一个例子,这个例子只有3个字。+例子:在头文件中直接实现了一个打印函数。


(C语言)头文件实现的函数

在C语言里面,有时候为了方便(方便的同义词是偷懒),函数就直接在头文件里面实现了。那么这样子有什么问题呢?

下面举个例子,这个例子只有3个文件

/* fun.h */ #ifndef FUN_H #define FUN_H void base(){}; void fun(); #endif /* fun.c */ #include "fun.h" void fun() { base(); } /* main.c */ #include "fun.h" int main() { fun(); return 0; }



好,然后gcc一下

gcc -c main.c (通过)
gcc -c fun.c (通过)
gcc -o main main.o fun.o (链接错误)

出现错误...“base()函数重定义!”

为什么重定义呢?因为#include是预处理部分,在编译之前由预处理程序在这个部分复制头文件的内容过来。所以在编译时候,main.o和fun.o文件都有base()函数的定义。

阅读全文