共享代码需要自己的头文件

如果想在多个程序之间共享encrypt.c代码,需要想办法让这些程序知道它,为此你可以用头文件。

共享代码需要自己的头文件 - 图1

在程序中包含encrypt.h

在这里使用头文件不是为了能够调整函数之间的顺序,而是为了让其他程序知道encrypt()函数:

共享代码需要自己的头文件 - 图2

主程序有encrypt.h,这表示编译器知道encrypt()函数,这样才能编译代码。在链接阶段,编译器会把message_hider.c中的encrypt(msg)调用连接到encrypt.c中的encrypt()函数。

最后,为了把所有东西编译到一起,只需把源文件传给gcc

  1. gcc message_hider.c encrypt.c -o message_hider

共享变量

你已经知道如何在不同的文件之间共享函数,但如果你想共享变量呢?为了防止两个源文件中的同名变量相互干扰,变量的作用域仅限于某个文件内。如果你想共享变量,就应该在头文件中声明,并在变量名前加上extern关键字:

  1. extern int passcode;

共享代码需要自己的头文件 - 图3试驾

看看你编译message_hider程序时会发生什么:

共享代码需要自己的头文件 - 图4

程序正确运行了。只要把encrypt()函数放在一个单独的文件中,就可以在任何程序中使用它了。假如你想修改encrypt()函数,把它变得更安全,只要修改encrypt.c文件就行了。

共享代码需要自己的头文件 - 图5要点

  • 为了共享代码,可以把代码放到一个单独的C文件中。

  • 需要把函数声明放到一个单独的.h头文件中。

  • 在所有需要使用共享代码的C文件中包含这个头文件。

  • 在编译的命令中列出所有C文件。

 

共享代码需要自己的头文件 - 图6滑野雪

赶快用encrypt()写一个程序吧。别忘了,encrypt()还可以用来解密喔。

共享代码需要自己的头文件 - 图7