问题背景:

  看 https://www.cnblogs.com/sinaxyz/p/4525208.html 这个篇blog时候,发现在应用层代码中,函数 int open_netlink() 中,有这么一句:

int open_netlink()
{
/*...*/
struct sockaddr_nl addr; memset((void *)&addr, , sizeof(addr));
/*...*/
addr.nl_pid = getpid()
/*...*/
}

  通过查询,发现:

struct sockaddr_nl {
__kernel_sa_famiy_t nl_family;
unsigned short nl_pad;
__u32 nl_pid;  //无符号整型
__u32 nl_groups;
};
pid_t getpid(void); //pid是int类型

解决方案:

  随便写的demo示例,隐式类型转换时候不报warning,加上选项 -Wconversion 就好了。

gcc -O2 -Wall -Wconversion test.c -o test

gcc产生类型转换告警的更多相关文章

  1. 基于cygwin构建u-boot(二)gcc的C语言标准版本号(-std=)

    接上文,修改Makefile和config.mk中,.depend相关文件格式后继续编译. 四.tools文件夹的文件编译错误 错误告警如下[多行信息,请使用右侧滚动条查看]: gcc -Wall - ...

  2. c语言技巧--长期更新

    1.   #define LOWER(c)            (unsigned char)(c | 0x20) 换成小写 2.   gcc -Wall -Werror //告警当成 错误来处理 ...

  3. 从一个跨二十年的glibc bug说起

    1. 缘起 这几天调gcc 7.5.0 +glibc 2.23的交叉编译工具链,由于gcc 7.5.0的默认打开Werr,偶然发现了glibc一个隐藏了二十年的世纪大bug. 这个bug在glibc ...

  4. gcc g++ 参数介绍

    C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源 ...

  5. GCC(警告.优化以及调试选项)

    GCC(警告.优化以及调试选项) [介绍] gcc and g++分别是gnu的c & c++编译器   gcc/g++在执行编译工作的时候,总共需要4步   1.预处理,生成.i的文件 预处 ...

  6. gcc编译问题

    gcc avl.o hash.o list.o rb.o example.o -o 123.exe 多个.o输出 exe -c和-o都是gcc编译器的可选参数.-c表示只编译(compile)源文件但 ...

  7. gcc boost版本冲突解决日记

    问题背景 项目在Ubuntu10 64位 boost 1.55,boost采用的是项目内包含相对目录的形式部署 项目采用了 -Wall -Wextra -Werror -Wconversion 最高的 ...

  8. C++中的4个类型转换关键字

    转载:http://poplars.blog.163.com/blog/static/1394221742013021111210567/ n多书里面推荐要养成使用转型关键字的习惯,几年过去了,感觉还 ...

  9. c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast

    c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast  [版权声明]转载请注明出处 http://www.cnblogs.c ...

随机推荐

  1. c 语言的复杂声明

    简化的声明语法: dcl: optional *'s direct-dcl direct-dcl: name (dcl)  direct-dcl() direct-dcl[optional size] ...

  2. kafka清理

    由于项目原因,最近经常碰到Kafka消息队列拥堵的情况.碰到这种情况为了不影响在线系统的正常使用,需要大家手动的清理Kafka Log.但是清理Kafka Log又不能单纯的去删除中间环节产生的日志, ...

  3. go语言指针判等

    https://blog.csdn.net/qq_26981997/article/details/52608081

  4. linux配置虚拟域名

    linux环境下面配置虚拟主机域名 第一步:在root目录下面(即根目录)ls(查看文件)cd进入etc目录find hosts文件vi hosts 打开hosts文件并进行编辑在打开的文件最下面添加 ...

  5. flexible

    https://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html

  6. mysql ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通 ...

  7. 三层和MVC

    一样写啊... 比如DAL层: C# code? 1 2 3 4 5 Public void Update(XXXXX.Models.News model) {         db.Entry(XX ...

  8. python 进阶(转自http://python.jobbole.com/82633/)

    网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络库(绑定libcurl). urllib3 – P ...

  9. 【Scheme】序列的操作

    1.序列的表示 序列 序列(表)是由一个个序对组合而成的,具体来说就是让每个序对的car部分对应这个链的条目,cdr部分则是下一个序对. 对于1->2->3->4这个序列我们可以表示 ...

  10. poi excel 加粗

    参考 https://blog.csdn.net/wellto/article/details/52293202 XSSFWorkbook xwb = new XSSFWorkbook(); ... ...