一,C语言中没有bool类型,
如果要模拟bool类型,需要宏定义
#include<stdio.h>
typedef int bool;
#define true 1
#define fslae 0
int main()
{
bool flag =true;//如果要用需要宏定义
_Bool flag =true;//C语言的bool类型
}
二,–/++(前置++优先级小于后置++)
1,a++ 后置(a备份变量,用的是备份变量)
2,++a 前置(拿到a,a+1,用的是a本身)
int main()
{
int a=10;
int b=20;
a+++++a;//1 ((a++)++)+a ((tmp++)++)+a
a+++b;//2 (a++)+b (tmp)+b
++a+++b;//3 ( ++(a++))+b (++tmp)+b
++++++a;//4 ++(++(++b)) 前置++用的是自己本身,不是tmp。所以正确
a++++++;//5 ((a++)++)++ (tmp++)++
return 0;
}
所以,2,4是正确的,1,3,5是错误的。
三,判断当前电脑大小端的代码(要求:尽可能简单)
void Test()
{
int a=1;
char b=(char)a;
return b=1;
}
int main()
{
bool flag = Test();
return 0;
}
四,
4个字节
typedef struct Data
{
char a;
char b;
char c;
char d;
}DATA;
int main()
{
int size=sizeof(DATA);
count << "size:" << size <<endl;
return 0;
}
6个字节
16个字节
总结
不仅要以字节对齐,结构体还有是最大字节数的整数