c++ - CPP - 在库中更改#define

标签 c++ arduino

我正在修改 CPP Arduino 库。 目的是在用户代码中添加主机名。

这是 Arduino 以太网库: Arduino Ethernet Library

我在我的源代码中使用了 ethernet.h。

在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++,需要有关示例代码的帮助。

谢谢

苏迪尔

最佳答案

#define 是预处理器指令(“宏”),而不是变量。您无法在运行时修改它。

一种可能性是将 #define HOST_NAME "MYBOARD" 替换为您想要的任何内容。如果由于某种原因您无法执行此操作,请搜索使用 HOST_NAME 的位置并将其替换为您的自定义变量。如果没有其他详细信息,我无法为您提供更多帮助。

关于c++ - CPP - 在库中更改#define,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33075776/

相关文章:

c - 如何使用 PROGMEM 在 Arduino 闪存中存储字节数组?

c++ - 我应该如何初始化并正确使用 `struct` ?

c++ - 双端队列实现选项

javascript - 后端带有 C++ 类的 Electron nodejs

linux - 如何在 Linux 中播放 MIDI 输入

c++ - 如何使用#define 语句来设置字节数组?

c++ - C C++内存泄漏的原因

c++ - 什么时候在构造函数和析构函数中调用 this-> 是安全的

c++ - 如何使用 asio 库获取 ip 地址的主机名?

c - 倒数