c语言常量能溢出吗,C:为什么在隐式常量转换中溢出[-Woverflow]?

使用蹩脚的使用GCC 4的Eclipse Nios II。包含一个文件,可以在线查找该文件为font8x8_basic.h。我有警告说我多次将文件包含在内,所以我正在尝试添加关键词const和extern,只有主要内容才能使其成为全局文件。 extern不应该使用,如果初始化完成,是否正确?C:为什么在隐式常量转换中溢出[-Woverflow]?

但是,带走const,给我隐式常数转换的警告。带走const自定义,干干净净,错误依然存在!!

在font8x8_basic.h

#ifndef FONT8x8_H_

#define FONT8x8_H_

char font8x8_basic[128][8] = {

{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // U+0000 (nul)

{ 0x00, 0x00, 0x0,...

在vga_util.h

#ifndef VGA_UTIL_H_

#define VGA_UTIL_H_

....

#include "font8x8_basic.h"

...

在sensor.h

#ifndef SENSOR_H_

#define SENSOR_H_

...

#include "vga_util.h"

在main.c中

#include "vga_util.h"

#include "sensor.h"

我生成日志看起来是这样的

05:27:22 **** Incremental Build of configuration Nios II for

project C_eng_job4 ****

make all

Info: Building ../C_eng_job4_bsp/

C:/altera_lite/16.0/nios2eds/bin/gnu/H-x86_64-mingw32/bin/make

--no-print-directory -C ../C_eng_job4_bsp/

[BSP build complete]

Info: Compiling main.c to obj/default/main.o

nios2-elf-gcc -xc -MP -MMD -c -I../C_eng_job4_bsp//HAL/inc

- I../C_eng_job4_bsp/ -I../C_eng_job4_bsp//drivers/inc -pipe -D__hal__

-DALT_NO_C_PLUS_PLUS -DALT_NO_INSTRUCTION_EMULATION -DALT_USE_SMALL_DRIVERS

-DSMALL_C_LIB -DALT_SINGLE_THREADED -O0 -g -Wall -Wpedantic -Werror

-mno-hw-div -mno-hw-mul -mno-hw-mulx -o obj/default/main.o main.c

In file included from vga_util.h:16:0,

from main.c:31:

font8x8_basic.h:69:25: error: overflow in implicit constant conversion

[- Werror=overflow]

{ 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00}, // U+002A (*)

^

font8x8_basic.h:122:49: error: overflow in implicit constant conversion

[-Werror=overflow]

{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF}, // U+005F (_)

^

cc1.exe: all warnings being treated as errors

make: *** [obj/default/main.o] Error 1

完整代码可以看出here

+0

不要通过试错学习C!并且不要在头文件中使用变量_definiitions_。您应该咨询C书abotu头文件是什么以及如何使用它们。 –

+0

不要在头文件中声明实际数据。而是在头文件中定义数据元素,在一个源文件中声明实际数据(不要使用修饰符'static')然后在任何想要使用该数据的文件中包含该头文件 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值