小编pha*_*rrr的帖子

使变量具有与#define相同的类型/作用?

我正在ESP32和路由器之间建立wifi连接。ESP32的结构包含所有wifi配置的详细信息,其中两个是SSID和密码。如果尝试使用变量,则无法设置这两个。

如果我使用#define定义了想要的字符串,它将起作用。...sta是保存配置参数的结构,sta与另一个结构合并为wifi_config_t的数据类型。...ssid和password的类型为uint8_t

//These work
#define ESP_SSID "AccessPoint"
#define ESP_PASS "Pass" 

//These don't work
char ESP_SSID[32] = "AccessPoint" //32 since that's max SSID length
char ESP_PASS[64] = "Pass" //64 since that's max pass length

//...later in code...
wifi_config_t wifi_config = {
    .sta = {
        .ssid = ESP_SSID,
        .password = ESP_PASS
    },
};

//...definition of .sta ...
typedef struct {
    uint8_t ssid[32];
    uint8_t password[64];
...
} wifi_sta_config_t;
Run Code Online (Sandbox Code Playgroud)

但是我正在尝试使其能够在运行时更改SSID和Pass,这就是为什么要设置变量的原因。但是,如果我使用变量版本,则会导致以下错误:

warning: initialization makes integer from pointer without a cast [-Wint-conversion]
.ssid = ESP_SSID,
        ^ …
Run Code Online (Sandbox Code Playgroud)

c int pointers type-conversion esp32

2
推荐指数
1
解决办法
112
查看次数

标签 统计

c ×1

esp32 ×1

int ×1

pointers ×1

type-conversion ×1