好是好,可是,KEIL是针对8051专门设计的.gcc是通用型的,而且适用于RISC,现代超标题处理器,8051太简单,效率会不会是个问题?
gcc是好,有很多扩充,如可以为样初始化一个结构:
struct test test_data = { .x =10; .y=100;}
还有__attribute__,......
但,效率如何?你的例子太简单,不能说明问题....
给我一个复杂的例子.....
struct point { double x,y,z;};
struct point get_x(struct point s)
{
struct point t;
t.x=t.y=10;
t.z=s.z;
return t;
}
int f(int d)
{
int x,y,z;
double a,b,c;
x=100;
y=d> 10?100:200;
x=y> 100?200:300;
a=b=10;
c=a+b*10;
return z+test(x,y,&z);
}
整形参数从r0-r3中返回
bp与sp是模拟堆栈与基本框架....
初学者当然学KEIL,因为简单....
专业人士不用学就能用gcc,而且独爱gcc
初学者可以从gcc开始....
因为有VC,所以,很多软件工程师水平很低,因为不用懂汇编语言....
因为有KEIL,很多嵌入式开发者不能上台阶....
gcc是linux入门的必修课....
我最不喜欢记命令......
你知道更多的程序的构成细节,而且你能控制它....
GUI是傻瓜型的,程序是转了,可是,你对二进制代码没有多少了解.如果你用KEIL,你不会明白AOUT,ELF,COFF....
用了GCC,你会明白操作系统很多技术细节.....包括PLT, GOT,....
拿动态连接来说,用VC的人有几个知道DLL的连接技术?用了GCC,你就会明白.....
一提起那么多命令要记,要用键盘输入命令行就头大.....