为什么这段代码在C11时会给予错误?在C〉11时,它编译得很好。我做错了什么?
typedef void (*cmdH)(const char* args, const uint8_t argCnt);
struct CMDList {
char* cmd = nullptr; /**< @brief Command C-string. */
cmdH cmdHandler = nullptr; /**< @brief Pointer to command function. See \ref cmdH */
};
CMDList list[2] =
{
{ "test", nullptr },
{ "hello", nullptr }
}; // ERROR HERE
错误:无法将'{“test”,nullptr}'从''转换为'CMDList'
我正在使用https://www.onlinegdb.com/online_c++_compiler测试我的代码
1条答案
按热度按时间ars1skjm1#
这是可行的。问题是结构声明中的默认值。另外,
char*
应该是const char*
。