linux下学c的尴尬...
不知道大家有在linux下c的吗?本人就是一枚,又是边看小甲鱼老师的c语言入门视频,又在linux下写小甲鱼老师视频上写的c程序,可是问题来了,一直报错,都快崩溃了。求解!
#include <stdio.h>
void main ()
{
printf("%d \n",sizeof(int));
}
这是小甲鱼老师视频里的一个C程序
这是Linux下的报错
muzi@muzi-TongFang-G41T-CM3:~/桌面/学习笔记/学习C语言入门到精通/学C第一天$ gcc试列程序4.c
试列程序4.c: In function ‘main’:
试列程序4.c:5:15: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
printf("%d \n",sizeof(int));
在线求解! 错误说的很明白的了啊
printf里的前一个元素中d%是int型,你后面的那个元素是长无符号整形,前后不匹配啊。
编译器还专门把那一行打印出来了…… 可是小甲鱼这样写确实编译运行成功了 就是纠结这里... 你linux装的是什么版本啊 这不是错误,是警告
程序应该是可以运行的 乌班图 16.10 Linux下C没提示就是成功有任何提示应该都是报错吧 是不是Windows下写C和Linux下写C有区别 自己也还看了一本C语言入门一个老外的写的里面的程序在Linux下运行也没报错个人对比了下 是不是不规范的原因?
#include<stdio.h>
intmain(void)
{
return0;
}
那本书是这样写的中间就省略了自己看了小甲鱼的3集C语言视频 除了 hello word 那个运行了其他的几乎不是这里有点问题就是那里有点问题 adas 发表于 2016-12-21 11:27
自己也还看了一本C语言入门一个老外的写的里面的程序在Linux下运行也没报错个人对比了下 是不是不规 ...
不同硬件对相同代码编译出的结果可能不同:
你逐个排除一下:
1、数据类型所占空间不同
不做说明了,有的高端点的机器,可能INT占8字节
2、数据类型表达不同
例子:unsigned int是无符号数,那么int到底有没有符号?答:根据所在环境不同而不同
3、对运算符优先级的处理不同
例子:
i = 2;
p = ++i + ++i + ++i;
本人亲测,intel的CPU编译后运行结果是 p=15
而AMD的CPU编译后运行结果是 p = 13
好吧,目前就发现这么多,所以自己根据GCC编译问题的提示来看吧……{:10_266:} zealstar 发表于 2016-12-21 21:45
不同硬件对相同代码编译出的结果可能不同:
你逐个排除一下:
1、数据类型所占空间不同
谢啦
页:
[1]