gpt4 book ai didi

c++ - C POSIX API 是否与 C++ STL 兼容

转载 作者:行者123 更新时间:2023-11-28 07:09:15 26 4
gpt4 key购买 nike

我将使用 C POSIX API 库来学习套接字编程。我将创建将监听连接的服务器和将连接到服务器的客户端。在服务器上有一个看起来像这样的文本文件

Peter,Male,10
Mary,Female,20
Tim,Male,30
Shrek,Male,40

服务器将读取文本文件并将其存储在数据结构中。我想知道使用像 vector 这样的 C++ STL 与 C POSIX API 一起存储所有文本文件信息是否会存在任何兼容性问题?

有人可以建议我应该使用 C struct 还是 C++ STL?

最佳答案

您可以从 C++ 程序中调用 C 函数。为此,您必须将它们声明为“extern C”,以便编译器知道如何调用它们。但好消息是你的 C 库包含文件几乎肯定有这样的东西:

#ifdef __cplusplus
extern "C" {
#endif

/* C callable stuff goes here */

#ifdef __cplusplus
}
#endif

因此,如果您从 C++ 程序中包含它们,则这些函数已被声明为 C 函数。

您传递给 C 函数的参数必须是它们的声明指定的类型 - 因此您需要根据需要使用结构、指针等。但是在内部,您的程序可以使用您想要的任何 STL 或其他 C++ 库。

有适用于 C++ 的网络库,可以更轻松地使用 C++ 中的套接字。它们本质上是 POSIX 函数(或其他平台的等价物)的包装器。但是,如果您正在尝试学习 POSIX API 或想做一些这些库不支持的事情,那么您可以直接调用 POSIX API。

关于c++ - C POSIX API 是否与 C++ STL 兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21273170/

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