c - 从 const char 指针到 char 指针的赋值不给出警告
问题描述
为什么以下代码不会引发任何警告?
使用 -Wall、-Wpedantic、-Wextra 编译,它们都没有发出警告。
int main()
{
const char *p;
char a[] = "hey";
p = a;
(void) p;
return 0;
}
我期待某种警告,例如 assignment -Wdiscarded-qualifiers
解决方案
您正在从a分配char *
到a const char *
。这是安全的,因为您添加了const
限定符,而不是删除它。
如果你这样做:
char *p;
const char a[] = "hey";
p = a;
然后您会收到有关丢弃const
限定符的警告。
推荐阅读
- node.js - 如何解决您需要启用 javascript 才能在 React 应用程序中运行此应用程序的问题?
- java - 没有CALL_LOG权限无法获取Android P来电号码
- python - 如何在 python 中创建一个显示所有可用命令的命令?喜欢终端的帮助
- javascript - 如何使用函数 removeData 添加和删除嵌套数组“项目”中的数据
- python - 如何以最佳方式处理不在 word2vec 词汇中的单词
- php - 用于多租户的 Laravel Spatie/权限过滤器
- c# - 使用 ContinueDialogAsync 时字典中不存在给定键“对话框”
- c# - 有条件地创建对象
- delphi - 表单控件(编辑、组合框、备忘录等)查询是否已修改?
- sql - Firebird/Lazarus SQL 视图与选择 iif?