写一个函数判断系统是大端还是小端。若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1.
10年积累的成都网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有彝良免费网站建设让你可以放心的选择与我们合作。
大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中
小端格式:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节
联合体union的存放顺序是所有成员都从低地址开始存放。
Int checkCPU ()
{
Union w
{
Int a;
Char b;
}c;
c.a=1;
return (c.b==1);
}
UNIX 网络编程 第一卷 78页 (英文版) 给出了这样一段代码:
PS: 下面代码中的unp.h是Stevens 老大自己定义的一个头文件,具体的代码在这本书的附录里有给出来.
代码
1
2 #include "unp.h"
3
4 int main(int argc ,char ** argv)
5 {
6
7 union {
8 short s;
9 char c[sizeof(short)];
10 }un;
11 un.s = 0x0102;
12 printf("%s\n",CPU_VENDOR_OS);
13
14 if(sizeof(short) == 2)
15 {
16 if(un.c[0] == 1 un.c[1] ==2 )
17 printf("big-endian\n");
18 else if (un.c[0] == 2 un.c[1] == 1)
19 printf("little-endian\n");
20 else printf("unknow");
21 }else
22 printf ( "sizeof(short) = %d\n",sizeof(short));
23 exit(0);
24 }
25
union Charge
{
char arr[2];
short num;
};
int main()
{
union Charge charge;
charge.arr[0] = 1;
charge.arr[1] = 2;
if (charge.num == 0x0201)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
如果按你的方法来比较大小,而且是7个数字,也就是a~g,你后面少比较了g,而且最后的j也未必是最大,需要改为:
main()
{
int a,b,c,d,e,f,g,h,j;
scanf("%d%d%d%d%d%d%d",a,b,c,d,e,f,g); //这里读到g即可,后面没用的
a = max(a,b); //不能把g的值覆盖了,7个数,g还有存储数据呢
h = max(c,d);
j = max(e,f);
a = max(a,g); //还要和g比较
h = max(a,h); //接着还要比较a和h谁大
j = max(h,j); //这个才是最后结果,最大的一个
printf("abcdef da shi%d",j);
getch();
}
如果要比较大小的数比较多,建议使用数组存储,用个for循环就搞定了,如下:
#include stdio.h
void main()
{
int i, a[7], max = -32768;
for (i = 0; i 7; i++)
{
scanf ("%d", a[i]);
if (a[i] max) max = a[i];
}
printf ("max number is %d\n", max);
}
方法如下:
#includestdio.h
//#includewindows.h
voidmain()
{
intmax3(inta,intb,intc);
inta,b,c,result;
printf("Pleaseenterthreenumber:\n");
scanf("%d,%d,%d",a,b,c);
result=max3(a,b,c);
printf("Themaxofthreenumberis%d:\n",result);
//system("pause");
}
intmax3(inta,intb,intc)
{
intx,z;
if(ab)x=a;
elsex=b;
if(xc)z=x;
elsez=c;
returnz;
}
扩展资料:
C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。
与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。
1、二进制文本使用fopen函数的二进制模式“rb”就可以打开。对于程序来说,不管后缀名如何,文件分为两种类型:文本文件和二进制文件。 C语言里有一系列文件操作函数。区分文本和二进制文件,需要在打开文件时设置不同的控制符mode的变量即可。