我正在修改CPP Arduino库。 目的是在用户代码中添加主机名。
这是Arduino以太网库: Arduino Ethernet Library
我在源代码中使用ethernet.h。
在ethernet.h中有包含语句。
<div style='display:none !important; visibility:hidden; opacity:0;
color:transparent; height:0; width:0; mso-hide:all; line-height:0px;
font-size:0px'><table style='display:none !important; visibility:hidden; opacity:0;
color:transparent; height:0; width:0; mso-hide:all; line-height:0px;
font-size:0px'><tr><td>DATA</td></tr></table></div>
并且在dhcp.h中有宏。
#include "dhcp.h"
在dhcp.cpp中使用了这个宏
#define HOST_NAME "MYBOARD"
这个宏可以替换为变量,这样我可以为HOST_NAME分配值是我的源代码吗?
例子。 在我的源代码中
#include "dhcp.h"
buffer[17] = strlen(HOST_NAME) ; // length of hostname + last 3 bytes of mac address
strcpy((char*)&(buffer[18]), HOST_NAME);
应该将值传递给dhcp.cpp中的HOST_NAME
我对c ++知之甚少,需要示例代码的帮助。
谢谢
的Sudhir
答案 0 :(得分:1)
#define
是预处理程序指令(&#34;宏&#34;),而不是变量。你无法在运行时修改它。
一种可能性是将#define HOST_NAME "MYBOARD"
替换为您想要的任何内容。如果由于某种原因无法执行此操作,请搜索使用HOST_NAME
的位置并将其替换为自定义变量。没有其他细节,我无法帮助你。
答案 1 :(得分:0)
您无法更改HOST_NAME,因为它已在您的dhcp.h文件中定义,
如果你想改变你必须将它声明为全局变量而不是#define
有关#define的更多信息:
答案 2 :(得分:0)
我能够获得结果
在dhcp.h中我替换了
#define HOST_NAME "my-host-name"
与
extern const char HOST_NAME[10] ;
然后在我使用的项目源代码中
const char HOST_NAME[] = "MYHOSTONE";
编译后我运行了代码,在DHCP服务器日志中观察到,它显示正确的主机名。我认为这是一个肮脏的伎俩,我请求expers帮我清理这条线。
感谢