我有一个使用gcc版本4.6.3的项目,我被迫使用"-Wall -Werror -Wconversion"进行编译.以下简单示例显示了我无法摆脱的错误:
#include <stdint.h>
int main(void) {
uint32_t u = 0;
char c = 1;
u += c;
return (int)u;
}
Run Code Online (Sandbox Code Playgroud)
用上面的标志编译它给出:
test.c:7:8: error: conversion to ‘uint32_t’ from ‘char’ may change the sign of the result [-Werror=sign-conversion]
Run Code Online (Sandbox Code Playgroud)
好的.只需添加一个类型转换,对吗?不.将第7行更改为u += (uint32_t)c不会使错误消失.即使改变它u = u + (uint32_t)c也不会让它消失.
有可能解决这个问题吗?
请注意,"char"来自字符串,因此我无法更改其类型.
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |