我正在通过
gcc编译器收到警告,如果执行以下代码,程序将中止我无法理解为什么?如果有人澄清它会很有帮助.
#include<stdio.h> #include<stdarg.h> int f(char c,...); int main() { char c=97,d=98; f(c,d); return 0; } int f(char c,...) { va_list li; va_start(li,c); char d=va_arg(li,char); printf("%c\n",d); va_end(li); }
海湾合作委员会告诉我:
warning: 'char’ is promoted to ‘int’ when passed through ‘...’ [enabled by default] note: (so you should pass ‘int’ not ‘char’ to ‘va_arg’) note: if this code is reached,the program will abort
解决方法
原文地址:https://www.jb51.cc/c/112066.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。