如何在C编程中将IP地址定义为常量变量?

时间:2012-05-13 13:07:28

标签: c ip

我需要使用PC的eth0接口的IP地址(Linux OS - IPv4)。如何在不事先知道IP地址的情况下将其定义为常量变量?

2 个答案:

答案 0 :(得分:2)

你不能。

在C中定义常量的方法有两种:预处理器(#define)和常量(const something)。这两个都要求在编译时知道常量的值¹。因此,如果你的目标是有一种方法来引用这个IP而不可能在程序执行期间用其他值覆盖它,那就根本不可行。

答案 1 :(得分:2)

如果你有它们作为地址缓冲区的指针你可以。导出指向const限定类型

的指针
extern your_address_type const*const addr;

你必须让你的图书馆代码看起来像

static your_address_type my_address;
your_address_type const*const addr = &my_address;

在您的图书馆内,您可以正确初始化my_address,客户端代码只会看到addr,但无法更改。