Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
小端和大端c程序_C - Fatal编程技术网

小端和大端c程序

小端和大端c程序,c,C,有人能告诉我我是否正确地执行了以下程序吗?它应该根据机器是Little endian还是Big endian打印大小 #include <stdio.h> int main() { int x = 1; unsigned char *c = (char*)&x; if (*c) printf("Little"); else printf("Big"); return 0; } #包括 i

有人能告诉我我是否正确地执行了以下程序吗?它应该根据机器是Little endian还是Big endian打印大小

#include <stdio.h>

int main()
{
    int x = 1;   

    unsigned char *c = (char*)&x; 

    if (*c)
        printf("Little");
    else
        printf("Big");

    return 0;
}
#包括
int main()
{
int x=1;
无符号字符*c=(字符*)&x;
如果(*c)
printf(“小”);
其他的
printf(“大”);
返回0;
}

代码几乎正确:

  • 您应该将
    &x
    转换为
    (无符号字符*)&x
  • 您应该在
    Little
    Big
    之后
    printf
    一个尾随
    '\n'
进一步工作:

  • 您可以通过去掉
    c
    来简化代码
  • 让它更简单:去掉
    if
    并使用三元运算符

代码几乎正确:

  • 您应该将
    &x
    转换为
    (无符号字符*)&x
  • 您应该在
    Little
    Big
    之后
    printf
    一个尾随
    '\n'
进一步工作:

  • 您可以通过去掉
    c
    来简化代码
  • 让它更简单:去掉
    if
    并使用三元运算符
    • 我的笔记本电脑“很小”:

      #包括
      int main(){
      int x=1;
      无符号字符*c=(无符号字符*)&x;
      printf((*c)-“小的”:“大的”;
      返回0;
      }
      
      我的笔记本电脑“很小”:

      #包括
      int main(){
      int x=1;
      无符号字符*c=(无符号字符*)&x;
      printf((*c)-“小的”:“大的”;
      返回0;
      }
      
      在我看来很不错,除了你可能想把它转换成一个
      无符号字符*
      。你能解释一下吗哈哈,对不起,我对C不是很在行@VaughnCatoI投票结束这个问题,因为它属于CodeReviewPedanticy,如果(*c==1)printf(“Little”),更好的代码应该是
      ;else printf(“不小”)
      在我看来很不错,除了你可能想把它转换成一个
      无符号字符*
      。你能解释一下吗?哈哈,对不起,我对C不是很在行@VaughnCatoI投票结束这个问题,因为它属于CodeReviewPedanticy,如果(*c==1)printf(“Little”),更好的代码应该是
      ;else printf(“不小”)
      
      #include <stdio.h>
      
      int main(){
          int x = 1;   
      
          unsigned char *c = (unsigned char*) &x; 
          printf( (*c) ? "Little\n" : "Big\n");
      
          return 0;
      }