当前位置: 首页 > news >正文

C语言从头学67——学习头文件stddef.h和stdbool.h

        在stddef.h头文件中定义了一些数据类型和宏,其中宏包括无参宏和有参宏(有参宏象函数);stdbool 中定义了布尔类型和几个宏,可以用来声明、表示布尔量。
一、stddef.h定义的类型
        ptrdiff_t:指针相减运算返回结果的类型
        size_t:sizeof字节运算符进行运算返回结果的类型
        wchar_t:宽字符类型
二、stddef.h定义的宏
        NULL:空指针
        offsetof()宏
        功能:这是一个有参宏,返回某个属性在Struct结构内部的起始位置。
        使用格式:offsetof(参1,参2);
           参1:struct结构名
           参2:结构中某一属性
       返回值:返回Struct结构起始位置到该属性开始间的字节数
       说明:由于系统为了字节对齐,可能会在struct结构的属性之间插入空字节。
三、stdbool.h定义的类型、宏
       bool、_Bool:布尔类型
       true:值为1,表示真
       false:值为0,表示假
四、举例程序

#include<stdio.h>
#include<stddef.h>
#include<stdbool.h>
struct test
{char a[6];int x;
};
bool isBigger(int a, int b) //a>b返回真,a<=b返回假
{if (a > b){return true;}else{return false;}
}
int main(void)
{
//一、类型ptrdiff_t、size_t、wchar_t所占字节数printf("ptrdiff_t占字节:%zu\n", sizeof(ptrdiff_t));//运行结果:ptrdiff_t占字节:8printf("size_t占字节:%zu\n", sizeof(size_t));//运行结果:size_t占字节:8printf("wchar_t占字节:%zu\n", sizeof(wchar_t));//运行结果:wchar_t占字节:2
//二、有参宏offsetof的使用printf("test中a位于:%zu\n", offsetof(struct test,a));//运行结果:test中a位于:0printf("test中x位于:%zu\n", offsetof(struct test, x));//运行结果: test中a位于:8//分析:char数组a的位置开始于0没有问题,6个char型元素占6个字节;而x开始于第8字节,//也就是说,a[6]多占了2个字节,这两个字节就是为了系统对齐占用。
//三、实验布尔类型int x = 4, y = 6;bool b = isBigger(4, 6);if (b)printf("x大于y\n");if (!b)printf("x不大于y\n");//运行结果:x不大于yprintf("b=false时b的值:%d\n", b);//运行结果:b=false时b的值:0getchar();return 0;
}


http://www.mrgr.cn/news/47459.html

相关文章:

  • 深度学习从入门到实战——卷积神经网络原理解析及其应用
  • VUE3 监听器(watch)
  • SQLite PRAGMA
  • 深入浅出C#线程池ThreadPool:提升程序性能的利器
  • Scala语言的面向对象编程
  • ue5玩家角色添加武器。切换武器位置,手上武器放到背上。演示一下人体插槽和武器的连接。仅仅演示,实际项目不是这么用的
  • 挑战高薪职位--全面掌握Oracle数据库:从入门到实战高薪技能(11g至19c)
  • 10.10今日错题解析(软考)
  • 爸妈总说着学门技术,学机器视觉技术确实是一条踏实的生活道路,这条路你走得下去走得通吗?
  • ubuntu 18.04虚拟机以太网网段与地平线J6板端连接配置
  • 排序算法——归并排序
  • Lumerical——光源(Sources)
  • 40亿个QQ号,限制1G内存,如何去重?
  • Python内置函数
  • 机器学习:序列模式算法的原理、应用场景及优缺点介绍
  • opencv的相机标定与姿态解算
  • uniapp 省、市、区、乡镇 数据层级选择插件 Ba-DataPicker
  • 【工具使用】使用Docsify搭建个人文档网站
  • 【电路笔记】-求和运算放大器
  • CSS中Float(浮动)详解
  • Guava 用法指南
  • Java控制流 小案例
  • IFAdapter:用于基础文本到图像生成的实例特征控制
  • 用IntStream生成0到n的流,并找出不在numSet中的数字列表
  • 尚硅谷rabbitmq 2024 第50节 集群负载均衡 核心功能 答疑
  • 猫头虎分享已解决Bug || AssertionError: Torch not compiled with CUDA enabled 解决方案