gpt4 book ai didi

c - 纯头文件 ANSI C 库如何可能?

转载 作者:行者123 更新时间:2023-11-30 18:28:06 37 4
gpt4 key购买 nike

有一个非常受欢迎的库,名为 nuklear它都是用 ANSI C 编写的,并且完全只是头文件。然而,每个翻译单元中只能有一个函数定义,并且 ANSI C 没有内联函数,那么这个库如何正常工作而不出现链接器错误呢?

最佳答案

从第 73 行开始是有关如何使用此 header 的说明:

/// ## Usage
/// This library is self contained in one single header file and can be used either
/// in header only mode or in implementation mode. The header only mode is used
/// by default when included and allows including this header in other headers
/// and does not contain the actual implementation. <br /><br />
///
/// The implementation mode requires to define the preprocessor macro
/// NK_IMPLEMENTATION in *one* .c/.cpp file before #includeing this file, e.g.:
///
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~C
/// #define NK_IMPLEMENTATION
/// #include "nuklear.h"
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

所以通常包含这个头文件只会给你声明。如果您在包含之前#define NK_IMPLMENTATION,则包含该实现。

关于c - 纯头文件 ANSI C 库如何可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49961835/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com