关于c语言中位段的问题: #include <stdio.h> #include <stdlib.h> #include <string.h>

运行结果 4 1,哪位大神解释下为什么sizeof结果为4
struct bit
{
unsigned char CF:1;
unsigned char :1;
unsigned char PF:1;
unsigned char :1;
unsigned char AF:1;
unsigned char :1;
unsigned char ZF:1;
unsigned char SF:1;
unsigned char TF:1;
unsigned char IF:1;
unsigned char DF:1;
unsigned OF:1;
unsigned FF:1;
unsigned UF:1;
};

int main()
{
struct bit b1;
printf("%d\n", sizeof(b1));
b1.CF=1;
printf("%d\n", b1.CF);
int a;
a = b1.CF;

return 0;
}

这个完全能解释你的问题:
http://blog.csdn.net/van150/article/details/544454
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言中,一段字符串“c11234”。如何提取后面4位数字,赋值给一个变量...
这是我写的,试过了,应该可以用:include <stdio.h> include <stdlib.h> include <string.h> int main() { char *a[] = { "c11234","c21234","c33112","c41234"};int i;for(i = 0; i < 4; ++i) { int value = atoi(a[i] + strlen(a[i]) - 4);printf("%d :...

#include<stdio.h> #include<stdlib.h> #include<conio.h> #include...
if (c==1)printf("\\nyou win!\\n");else printf("\\nyou lost!\\n");system("PAUSE");break;} } } \/***\/ void initial(){ int i,m,n,c,x,y;srand(time(NULL));for (i=0;i<Bomb;){ c=rand()%100;y=c\/10+1;x=c%10+1;if (item[y][x]!=9){ item[y][x]=9;...

c语言输入任意一段文字,在把这段文字的位置打印出来,如何写?
include <stdlib.h> include <string.h> int main(){ char str[128] = {0};gets(str);if (strlen(str) != 0){ printf("%s\\n", str);} return 0;}

c语言中常量的定义放在什么位置
如果是符号常量,哪那个位置都可以,一般是include头文件下面。

C语言的结构体位定义问题
所以上面的结构体,一个元素属性占一位,前面的是2字节,后面也是两个字节。本质上没有区分吧 常规下可以这样测试上面的代码 include<stdio.h>typedef unsigned short uint16_t ;typedef unsigned char uint8_t ;typedef struct{ uint16_t bit0:1; uint16_t bit1:1; uint16_t ...

C语言中,include是什么意思?
在C系统的编程语言中,#include是为了声明在这个地方插入别的文件中的代码。以#开头,包含某个头文件,如#include <stdio.h>,就是相当于引用stdio.h这个文件,然后这个文件里面所定义的一些函数就可以直接使用了。

C语言文件中字符串的查找与替换
include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>void Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst){char *pi, *po, *p;int nSrcLen, nDstLen, nLen;\/\/ 指向输入字符串的游动指针.pi = pInput;\/\/ 指向输出字符串的游动指针.po = ...

C语言中头文件<stdio.h>中的#ifndef _STDIO_H_
ifndef XXX def XXX \/\/ 代码 \/\/ 代码 endif 意思就是说你第一次include它的时候它正常加入,如果第二次include它的话代码就会被自动屏蔽掉

C语言编程:将一个字符插入到字符串中的指定位置
#include <stdio.h> #include <string.h> int main(void) { char str[256],s1[256],s2[256]; char ch; int i,j=0,k=0; printf("输入字符串:\\n"); gets(str); printf("输入要插入的字符和位置:\\n"); scanf("%c%d",ch,n); for(i=0;i<n-1;i++) { s1[j++]=str[i...

c语言结构体问题
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#define status int#define NAME 30 \/*各类名称字数上限*\/#define STU 100 \/*学生人数上限*\/#define SUB 10 \/*课程数上限*\/typedef struct record { float score; \/*成绩分数*\/ char level; \/*成绩分数段*\/} record;type...

相似回答