首页 > 其他分享 >c语言中const参数莫名警告

c语言中const参数莫名警告

时间:2024-11-19 22:31:44浏览次数:1  
标签:test1 const int PC1 value 莫名 test 警告

 

001、

[root@PC1 test1]# ls
test.c
[root@PC1 test1]# cat test.c                  ## 测试c程序
#include <stdio.h>

void print_array(const int x[4][3]);          // 函数原型声明

int main(void)
{
        int a[4][3] = {{1,2,4},{2,1,4},{2,5,1},{4,2,3}};
        print_array(a);                     //此处调用二维数组
        return 0;
}

void print_array(const int x[4][3])        //定义函数的时候使用const关键词, 因为只需要显示数组的元素,而不修改数组的元素
{
        int i,j;
        for(i = 0; i < 4; i++)
        {
                for(j = 0; j < 3; j++)
                {
                        printf("value = %d  ", x[i][j]);
                }
                putchar('\n');
        }
}
[root@PC1 test1]# gcc test.c -o kkk              ## 编译过程中遇到警告, 这个警告为什么会产生?
test.c: In function ‘main’:
test.c:8:2: warning: passing argument 1 of ‘print_array’ from incompatible pointer type [enabled by default]
  print_array(a);
  ^
test.c:3:6: note: expected ‘const int (*)[3]’ but argument is of type ‘int (*)[3]’
 void print_array(const int x[4][3]);
      ^
[root@PC1 test1]# ls
kkk  test.c
[root@PC1 test1]# ./kkk                          ## 运算
value = 1  value = 2  value = 4
value = 2  value = 1  value = 4
value = 2  value = 5  value = 1
value = 4  value = 2  value = 3

。 

 

002、去除const关键词(和上一个程序一致,只是去除了关键词const)

[root@PC1 test1]# ls
test.c
[root@PC1 test1]# cat test.c      ## 测试程序
#include <stdio.h>

void print_array(int x[4][3]);     // 函数原型声明

int main(void)
{
        int a[4][3] = {{1,2,4},{2,1,4},{2,5,1},{4,2,3}};
        print_array(a);          // 调用二维数组参数,只需要给数组名
        return 0;
}

void print_array(int x[4][3])       // 函数定义的时候不适用关键词const
{
        int i,j;
        for(i = 0; i < 4; i++)
        {
                for(j = 0; j < 3; j++)
                {
                        printf("value = %d  ", x[i][j]);
                }
                putchar('\n');
        }
}
[root@PC1 test1]# gcc test.c -o kkk      ## 编译过程中没有警告信息
[root@PC1 test1]# ls
kkk  test.c
[root@PC1 test1]# ./kkk                  ## 运算测试
value = 1  value = 2  value = 4
value = 2  value = 1  value = 4
value = 2  value = 5  value = 1
value = 4  value = 2  value = 3

 。

 

标签:test1,const,int,PC1,value,莫名,test,警告
From: https://www.cnblogs.com/liujiaxin2018/p/18555749

相关文章

  • C -- [vs2019] C2440 错误,无法从 const char[] 转换为 char*问题解决
    https://blog.csdn.net/weixin_45525272/article/details/118699716原因新标准中,不能把指针指向一串常量解决方案一:引入[]char*str=“helloworld”;改成:charstr_tmp[]=“helloworld”;char*str=str_tmp;方案二:加constchar*str=“helloworld”;改成:......
  • 【IMM EKF MATLAB CVCA】IMM滤波器,结合匀速运动 (Constant Velocity, CV) 和匀加速运
    文章目录程序简介运行截图程序代码程序讲解概述主要功能详细讲解1.初始化2.状态转移矩阵和协方差矩阵3.生成真实数据4.IMM算法5.结果后处理与可视化6.卡尔曼滤波函数总结程序简介该函数实现了交互式多模型(IMM)滤波器,结合了匀速运动(ConstantVelocity,......
  • 【模板进阶】std::is_union、std::is_class、std::integral_constant
    一、std::is_unionstd::is......
  • Windows系统日志报错:生成了一个严重警告并将其发送到远程终结点。这会导致连接终止。T
    当我们检查Windows系统日志发现有一个报错:生成了一个严重警告并将其发送到远程终结点。这会导致连接终止。TLS协议所定义的严重错误代码是10。WindowsSChannel错误状态是1203。导致报错的原因是什么?该如何处理?驰网飞飞和你分享其实这个报错和“生成以下严重警告:10。内部错误......
  • 【GreatSQL 优化器 - 01】const_table
    【GreatSQL优化器-01】const_table一、const_table介绍GreatSQL的优化器主要用JOIN类来进行处理SQL语句的,JOIN类有以下四个table数量相关的成员变量。其中const_tables是optimize最开始就检查并且标识的,因为这样可以把记录最少的表放在执行计划的第一步,在后面的......
  • python文件修改有没有办法警告通知
    在Python中设置文件修改的警告通知,可以通过几种不同的方法实现。以下是两种常见的方法:使用watchdog库进行实时监控:watchdog是一个跨平台的文件系统监控工具,它可以用来监控文件或目录的变化,如文件的创建、修改、删除等。你可以通过定义一个事件处理器来响应文件修改事件,并在事件......
  • 【GreatSQL 优化器 - 01】const_table
    一、const_table介绍GreatSQL的优化器主要用JOIN类来进行处理SQL语句的,JOIN类有以下四个table数量相关的成员变量。其中const_tables是optimize最开始就检查并且标识的,因为这样可以把记录最少的表放在执行计划的第一步,在后面的执行计划里面这些consttables是不参......
  • C++中clang tidy静态变量检查:Constructor does not initialize these fields
    这条警告通常表示在一个类的构造函数中,某些成员变量(如object和th_cfg)没有被显式初始化。编译器或静态分析工具(例如clang-tidy)可能会给出这样的警告,以帮助开发者避免潜在的未定义行为。可能原因缺少初始化:构造函数中没有对这些成员变量进行初始化,它们的值可能是未定义的。......
  • C++函数名后面有个const
    ‌函数名后面加const表示该函数是一个常成员函数,即该函数不会修改类的任何成员变量。‌在C++中,常成员函数通过在函数声明和定义后添加const关键字来标识。常成员函数不能修改类的任何成员变量,这保证了类的接口的稳定性。例如: classPoint{public:intGetX()const;//......
  • 第二届城市建设与交通运输国际学术会议(UCT 2025) 2025 2nd International Conference
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍据统计,我国常住人口城镇化率超过65%,部分城市城镇化率超过90%,未来预计还会不断提升。城市建设行业的发展仍处于蓬勃发展的时期。......