CPP -在库中更改#define
CPP - Change #define in library
我正在修改CPP Arduino库。目的是在用户代码中添加主机名。
这是Arduino以太网库:Arduino Ethernet Library
我在源代码中使用了ethernet.h。
in ethernet.h有include语句
#include "dhcp.h"
和dhcp.h宏中有
#define HOST_NAME "MYBOARD"
在dhcp.cpp中使用
#include "dhcp.h"
buffer[17] = strlen(HOST_NAME) ; // length of hostname + last 3 bytes of mac address
strcpy((char*)&(buffer[18]), HOST_NAME);
这个宏可以替换为变量,这样我可以为HOST_NAME赋值是我的源代码吗?
的例子。在我的源代码
variable_name ="MYBOARD1"
应该在dhcp.cpp
中将值传递给HOST_NAME我不太懂c++,需要帮助的例子代码。
谢谢
Sudhir
#define
是预处理器指令("宏"),而不是变量。你无法在运行时修改它。
一种可能性是用任何你想要的东西代替#define HOST_NAME "MYBOARD"
。如果由于某种原因您不能这样做,请搜索使用HOST_NAME
的位置并将其替换为您的自定义变量。如果没有更多的细节,我无法帮助你。
您不能更改HOST_NAME,因为它已经在您的dhcp.h文件中定义了,
如果你想改变你必须声明它为一个全局变量而不是#define
关于#define:
的更多信息为什么用#define代替变量
我能够达到的结果
在dhcp.h中我替换了
#define HOST_NAME "my-host-name"
extern const char HOST_NAME[10] ;
然后在我的项目源代码中我使用
const char HOST_NAME[] = "MYHOSTONE";
编译后我运行代码,在DHCP服务器日志中观察到,它显示正确的主机名。我认为这是肮脏的伎俩,我请求专家帮我清理这一行。
谢谢
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 内置函数可查看CPP中的成员变量
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- Cpp-Tuple使用带有变量的get
- C++-试图将函数指针推回到另一个CPP文件中的矢量时出错
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 如何通过cpp程序运行shell脚本
- 使用2个键的cpp-stl::优先级队列排序不正确
- Cpp检查规则不显示 #define,注释
- 该文件中的代码类型*.cpp #define mdTyVzgFy4_0UFy9GimmM
- 条件语句,用于验证事务模块(.cpp)标头中#define(d)整数提供的范围
- 在cpp中用#define定义函数
- cpp 中使用“”符号的语法 #define 不清楚
- 我们是否应该在.h和.cpp文件中都包含一个宏(#define)
- CPP -在库中更改#define
- #define不会从主程序传播到class.cpp