ISO C++禁止字符串常量转char*警告问题求助(Arduino)
解决Arduino中"ISO C++ forbids converting a string constant to 'char*'"警告
这个警告的核心原因是:字符串常量(比如"1234")存在程序的只读内存区域,char*是指向可修改字符的指针,C++标准禁止这种隐式转换,避免你误通过指针修改只读内容引发错误。
你可以根据实际需求选以下两种正确写法:
不需要修改密码字符串(多数场景适用),用
const char*声明:const char* password = "1234"; // 可自行修改为需要的密码内容加
const明确告知编译器指针指向的内容只读,完全符合C++标准,警告会直接消失。需要后续修改密码内容,改用字符数组声明:
char password[] = "1234";字符串会被复制到可写的数组内存中,后续能通过下标修改内容(比如
password[0] = '5')。也可以手动指定数组大小(要比字符串长度多1,留位置给结束符\0):char password[5] = "1234"; // "1234"有4个字符,加结束符共需5个位置
内容的提问来源于stack exchange,提问作者NIKITA
相关产品推荐
相关产品推荐

