【C语言基础】那些你可能不知道的C语言“潜规则”

news/2024/5/2 11:40:52/文章来源:https://blog.csdn.net/weixin_51244852/article/details/132788196

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • UL是什么?
  • C语言还有哪些后缀
  • U08、U16、U32
  • h\b\d\o
  • inc和src文件夹


UL是什么?

🧩UL的定义: 在C语言中,UL 是一个后缀,用于表示无符号长整型(unsigned long)。
🧩UL 的作用:
告诉编译器将一个整数常量指定为无符号长整型。
UL确保编译器将该常量解释为无符号的长整型而不是有符号的长整型。
UL的使用通常在需要显式指定无符号长整型时,比如与无符号长整型变量进行计算或者与其他无符号整数常量进行比较等。

🧩作用举例说明:例如,使用 100UL 表示一个无符号长整型的整数常量。
下面是一些示例:

unsigned long num1 = 100UL;   // 使用UL后缀来指定num1为无符号长整型
unsigned long num2 = num1 + 200UL;   // 使用UL后缀来指定200为无符号长整型
unsigned long num3 = sizeof(unsigned long) * 8UL;   // 使用UL后缀来指定8为无符号长整型

注意:在使用UL后缀时,UL 字母可以是大写或小写,效果是一样的。
UL 后缀只是为了明确地告诉编译器数据类型,可以根据实际需要选择使用。

C语言还有哪些后缀

在C语言中,除了UL之外还有哪些后缀呢?
📝还有一些其他的后缀用于表示不同的数据类型。以下是一些常用的后缀:
1. U 表示无符号整型(unsigned),比如使用 10U 表示无符号整数常量。
2. L 表示长整型(long),比如使用 100L 表示长整数常量。
3. LL 表示长长整型(long long),比如使用 100LL 表示长长整数常量。
4. F 表示单精度浮点数(float),比如使用 3.14F 表示单精度浮点数常量。
5. UL, ULL, LU, LLU 用于表示无符号长整型(unsigned long)或无符号长长整型(unsigned long long),比如使用 100UL 表示无符号长整数常量。

这些后缀用于在整数或浮点数常量中显式指定其数据类型,以确保编译器正确地解析和处理这些常量。在没有指定后缀的情况下,编译器会根据上下文和默认规则进行推断。

✅注意:
1、后缀的大小写是不敏感的,比如 u 和 U 是等效的, f 和 F 是等效的。但是,为了代码可读性和一致性,建议尽量保持一致,并使用大写后缀。
2、不同的数据类型可能有不同的后缀,具体使用哪些后缀应参考特定编程语言的规范和编译器的要求。

U08、U16、U32

U08对应b,U16对应w,U32对应d。
✅含义:
在计算机领域中,U08、U16 和 U32 是无符号整数的位数表示。这些位数表示了整数的存储空间或大小。
- U08 表示无符号 8 位整数,也即一个字节大小。通常用于表示范围在 0 到 255 的整数。
- U16 表示无符号 16 位整数,也即两个字节大小。通常用于表示范围在 0 到 65535 的整数。
- U32 表示无符号 32 位整数,也即四个字节大小。通常用于表示范围在 0 到约 42 亿的整数。

U08、U16 和 U32在代码中通过使用typedef进行数据类型重命名,如下所示:

typedef unsigned char U08;
typedef unsigned short U16;
typedef unsigned long U32;

另外,为了更为直观地表明定义的变量是上述类型中的一种,常常采用b、w 和 d 作为前缀。
这是一种常见的表示方法,特指在汇编语言中用于标识字节(byte)、字(word)和双字(double word)的大小:
- b 表示字节大小(8 位)。
- w 表示字大小(16 位)。
- d 表示双字大小(32 位)。
例如:我们定义一个结构体来包含上述的三种变量类型。

struct member{U08 m_bInt;U16 m_wShortInt;U32 m_dLongtInt;
};

因此,
📢U08 可以对应于 b
📢U16 可以对应于 w
📢U32 可以对应于 d
这种对应关系主要用于指示数据类型在汇编语言中的大小和操作。

h\b\d\o

在进行进制表示的时候,经常看到一些数字后面跟着h、b等字母,常常跟别的含义搞混,其实在用的过程中通过阅读上下文进行理解其中的含义,现在总结如下常用的进制的缩写。
📢hexadecimal,缩写hex:翻译为十六进制
📢binary,缩写bin:二进制
📢decimalism,缩写dec:十进制
📢octonary,缩写Oct:八进制

inc和src文件夹

在软件开发中,“inc” 和 “src” 是两个常见的文件夹名称,通常用于组织代码和项目结构。

🎉“inc” 是 “include” 的缩写,用于存放头文件(即包含函数和类的声明)的文件夹。

头文件通常包含了对应源代码文件(在 “src” 文件夹中)中定义的函数或类的声明,以供其他代码文件引用和使用。这种文件组织方式可以使代码更加模块化、可维护性更好,并且有助于减少编译时间。

🎉“src” 是 “source” 的缩写,用于存放源代码文件的文件夹。

源代码文件包含了实现各种功能和逻辑的函数和类的定义,通常是程序的核心部分。这些源代码文件可以包括 C、C++、Python、Java 等编程语言的源代码文件。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_169383.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 增量备份与恢复使用详解

目录 一、前言 二、数据备份策略 2.1 全备 2.2 增量备份 2.3 差异备份 三、mysql 增量备份概述 3.1 增量备份实现原理 3.1.1 基于日志的增量备份 3.1.2 基于时间戳的增量备份 3.2 增量备份常用实现方式 3.2.1 基于mysqldump增量备份 3.2.2 基于第三方备份工具进行增…

堆相关例子-排序最多移动k距离

题目: 一个几乎有序的数组。几乎有序是指:如果把数组排好序,每个数的移动距离一定不超过K,并且K一定远小于数组长度 分析: 给定的数组有上面的限制条件,根据条件可以分析得到: 对于前0-k个数…

javaee springMVC model的使用

项目结构图 pom依赖 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…

Linux初探 - 概念上的理解和常见指令的使用

目录 Linux背景 Linux发展史 GNU 应用场景 发行版本 从概念上认识Linux 操作系统的概念 用户的概念 路径与目录 Linux下的文件 时间戳的概念 常规权限 特殊权限 Shell的概念 常用指令 ls tree stat clear pwd echo cd touch mkdir rmdir rm cp mv …

振弦采集仪应用地铁隧道安全监测详细解决方案

振弦采集仪应用地铁隧道安全监测详细解决方案 随着城市化进程的不断加快&#xff0c;地铁作为一种高效、便捷、环保的交通方式已经成为现代城市不可或缺的一部分。因此&#xff0c;对地铁的安全性也越来越重视&#xff0c;一般二三线以上的城市在不断发展中&#xff0c;地铁做…

数据库相关基础知识

第一章 概念 1、数据&#xff1a;描述事物的符号记录称为数据。特点&#xff1a;数据和关于数据的解释不可分。 2、数据库&#xff1a;长期存储在计算机内、有组织、可共享的大量的数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储&#xff0c;具有较小的冗余度、…

9月8日扒面经

慢sql日志的排查和调优 开启慢查询日志&#xff1a;首先需要确保数据库的慢查询日志功能已经开启。在MySQL中&#xff0c;可以通过设置slow_query_log参数为1来开启慢查询日志&#xff0c;并设置long_query_time参数来定义慢查询的阈值。定位慢查询语句&#xff1a;根据慢查询…

SpringBootWeb请求-响应

HTTP请求 前后端分离 在这种模式下&#xff0c;前端技术人员基于"接口文档"&#xff0c;开发前端程序&#xff1b;后端技术人员也基于"接口文档"&#xff0c;开发后端程序。 由于前后端分离&#xff0c;对我们后端技术人员来讲&#xff0c;在开发过程中&a…

TDesign的input标签

目录 一、 新建页面01-todolist 二、 t-input标签、t-button标签 2.1 t-input标签 2.1.1 01-todolist.wxml页面 2.2 01-todolist.json页面 2.3 01-todolist.js页面 2.4 01-todolist.wxss页面 2.2 t-button标签 示例1&#xff1a;bind:change 示例2&#xff1a;bind:…

完成Centos上使用SSH公钥进行免密上传文件到gitee的步骤后,测试免密推送到gitee的时候还是需要输入邮箱和密码

如果你已经按照正确的步骤设置了SSH公钥并进行了免密测试&#xff0c;但仍然需要输入邮箱地址和密码才能推送到gitee&#xff0c;那么可能有以下几种原因&#xff1a; 您可能没有使用SSH URL来推送代码。请确保您使用的是SSH URL而不是HTTPS URL来推送代码。您可以使用命令 gi…

go语言基础操作---七

socket简单介绍—套接字编程 什么是Socket Socket&#xff0c;英文含义是【插座、插孔】&#xff0c;一般称之为套接字&#xff0c;用于描述IP地址和端口。可以实现不同程序间的数据通信。 Socket起源于Unix&#xff0c;而Unix基本哲学之一就是“一切皆文件”&#xff0c;都可…

使用JS实现一个简单的观察者模式(Observer)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 手撸Observer⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领…

API 架构学习

MQTT架构 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传输协议&#xff09;&#xff0c;是一种基于发布/订阅&#xff08;publish/subscribe&#xff09;模式的“轻量级”通讯协议&#xff0c;该协议构建于TCP/IP协议上&#xff0c;由IBM在…

Redis3.2.1如何设置远程连接?允许局域网访问

背景&#xff1a; 电脑A的redis需要开放给电脑B使用&#xff0c;二者处于同一局域网 【后面会补充更详细的踩坑历程&#xff0c;先发出来作为记录】 过程&#xff1a; 在你查了很多方法后&#xff0c;如果还是没有解决&#xff0c; 尝试考虑一下你的redis配置文件是不是修…

系列三、Linux中安装Nginx

一、准备工作 1.1、确保gcc安装成功 如果没有安装gcc执行./configure将会报错。 # 使用如下指令安装gcc&#xff1a;两个都要安装 yum -y install gcc yum -y install gcc-c 1.2、下载nginx1.12.2 http://nginx.org/en/download.html 1.3、下载pcre-8.3.7.tar.gz 1.3.…

2023/9/8 -- C++/QT

作业 1> 自行封装一个栈的类&#xff0c;包含私有成员属性&#xff1a;栈的数组、记录栈顶的变量 成员函数完成&#xff1a;构造函数、析构函数、拷贝构造函数、入栈、出栈、清空栈、判空、判满、获取栈顶元素、求栈的大小 02stack.h: #ifndef __02STACK_H__ #define __…

3D点云测量:计算三个平面的交点

文章目录 0. 测试效果1. 基本内容文章目录:3D视觉测量目录0. 测试效果 1. 基本内容 计算三个平面的交点需要找到满足所有三个平面方程的点。三个平面通常由它们的法向量和通过它们的点(或参数形式的方程)来定义。以下是计算三个平面的交点的一般步骤: 假设有三个平面,分别…

Spring系列文章:Spring事务

一、事务简述 1、什么是事务&#xff08; Transaction&#xff08;tx&#xff09;&#xff09; 在⼀个业务流程当中&#xff0c;通常需要多条DML&#xff08;insert delete update&#xff09;语句共同联合才能完成&#xff0c;这 多条DML语句必须同时成功&#xff0c;或者同…

基于spring boot+ vue+ mysql开发的UWB室内外定位系统源码

现代制造业厂区面积大、人员数量多、物资设备不断增加&#xff0c;随着工业信息化技术的发展&#xff0c;大型制造企业中对人员、车辆、物资的管理要求越来越细致。 高精度定位管理系统使用UWB室内定位技术&#xff0c;通过在厂区安装定位基站&#xff0c;为人员或设备佩戴定位…

【日常笔记】使用Server过程中可能遇到的一些问题

使用Server过程中可能遇到的一些问题 1. 如何查找GPU型号与驱动版本之间的关系&#xff1f;2. 如何查看当前Server的内核版本&#xff1f;3. 使用Nvidia过程中可能用到的命令4. 对Jupyter Notebook的一些配置5. TensorFlow的一般操作6. 使用PyTorch的一些操作7. 修改安装源为国…