C语言学习笔记 : 无符号类型 unsigned 与 unsigned int 是否一样

问题描述

  • 在阅读一些 Linux 内核代码时,偶尔遇到一些定义 ,如下
/*** struct pinctrl_setting_mux - setting data for MAP_TYPE_MUX_GROUP* @group: the group selector to program* @func: the function selector to program*/
struct pinctrl_setting_mux {unsigned group;unsigned func;
};
  • 这里的 unsigned group 是否与 unsigned int group 一致?还是 unsigned long group

测试与验证

  • 基础类型一般用大小来衡量,比如 int 类型,在 32位或 64位平台上,都是 4个字节。而 long 类型,在 32位平台上是 32位,而在 64位平台上,是 64位

  • 可以使用 C 语言的 sizeof 来获取 基础类型的占用多少字节

#include <stdio.h>
#include <stdlib.h>unsigned a;
unsigned int b;
unsigned long c;int main(int argc, char **argv)
{printf("size : unsigned = %ld, %ld\n", sizeof(a), sizeof(unsigned));printf("size : unsigned int = %ld, %ld\n", sizeof(b), sizeof(unsigned int));printf("size : unsigned long = %ld, %ld\n", sizeof(c), sizeof(unsigned long));return 0;
}
  • 可以在 Linux ubuntu 下,直接 gcc 编译,然后运行,当前 ubuntu 是64位的

  • gcc unsigned_demo.c -o unsigned_demo 生成 可执行程序 unsigned_demo

  • 测试结果

size : unsigned = 4, 4
size : unsigned int = 4, 4
size : unsigned long = 8, 8
  • 这里说明, unsigned numunsigned int num 一致,也就是如果只有 unsigned,就是 unsigned int 类型。

  • 这里还有一个小技巧: sizeof 返回值是 size_t 类型,如果打印这个 sizeof 返回的字节数,建议使用 %ld

  • printf("size : unsigned = %ld, %ld\n", sizeof(a), sizeof(unsigned));

小结

  • Linux 内核代码就像是一个【宝藏】,里面有很多未知的各种开发经验、技术积累与技巧,等待深入的去探索。

  • 可以多积累一些技术细节,这样阅读代码不再困惑,对代码实现有个正确、清晰的认识。

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

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

相关文章

zookeeper弱密码漏洞修复

1.连接zookeeper 进入zookeeper安装目录 bin目录下 ./zkCli.sh -server IP:21812.查看节点 ls /3.查看节点权限 getAcl /zookeeper4.设置IP权限 setAcl / ip:127.0.0.1:cdrwa,ip:10.86.30.11:cdrwazookeeper的权限不具备继承性,父子节点的权限相互独立,因此需要为每个子…

LC 410. 分割数组的最大值

410. 分割数组的最大值 难度&#xff1a; 困难 题目大意&#xff1a; 给定一个非负整数数组 nums 和一个整数 k &#xff0c;你需要将这个数组分成 k 个非空的连续子数组。 设计一个算法使得这 k 个子数组各自和的最大值最小。 提示&#xff1a; 1 < nums.length < 10…

11- OpenCV:自定义线性滤波(卷积,卷积边缘)

目录 一、卷积 1、卷积概念 2、卷积如何工作 3、常见算子&#xff08;卷积核 Kenel&#xff09; 4、自定义卷积模糊 5、代码演示 二、卷积边缘 1、卷积边缘问题 2、处理边缘 3、相关的API说明 4、代码演示 一、卷积 1、卷积概念 &#xff08;1&#xff09;在OpenC…

执行计划操作符(DM8.1 20231113)

达梦数据库执行计划操作符 环境介绍 环境介绍 数据库版本 DM8.1 20231113达梦数据库学习使用列表 - 点击跳转 操作符名称参数说明操作说明AAGR2grp_num&#xff1a;分组项个数 / sfun_num&#xff1a;返回上层操作符的集函数个数/distinct_flag&#xff1a;集函数参数是否去重…

生成当天递增唯一的流水号的几种方式

说明&#xff1a;当开发中&#xff0c;如交易、文件传输过程中的文件名&#xff0c;可能需要我们使用一串唯一的数字来锁定这一条“交互记录”&#xff0c;即流水号。 本文介绍几种生成6位递增唯一&#xff0c;且每日重置的流水号的方式。 方式一&#xff1a;使用Redis 我们…

模仿ProTable创建ProTable组件

不多说废话直接上代码 父组件 // index.jsx/*** description 此ProTable是根据ProComponents里的ProTable模仿封装的简易版本* */ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useState } from react import { Card, Table } from antd import…

SpringSecurity(11)——核心组件和认证流程

获取用户信息 // 获取安全上下文对象&#xff0c;就是那个保存在 ThreadLocal 里面的安全上下文对象 // 总是不为null(如果不存在&#xff0c;则创建一个authentication属性为null的empty安全上下文对象) SecurityContext securityContext SecurityContextHolder.getContext(…

微信轰炸-python实现方法

新手&#xff0c;一般都需要执行以下命令&#xff0c;用来导入对应模块 pip install -i Simple Index pynput 键盘winr进入输入cmd 执行该命令即可&#xff1a;pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pynput 打开pycharm,输入代码如下 from pynput.keybo…

AI视频智能识别技术在智慧农业大棚升级改造管理场景中的应用方案

一、需求分析 随着科技的进步和农业现代化的推进&#xff0c;智能化技术逐渐成为现代农业发展的重要支撑。农业大棚作为现代农业的重要组成部分&#xff0c;其智能化改造对于提高农业生产效率、降低成本、增加收益具有重要意义。利用先进的信息化手段来对农业大棚进行管理&…

NOC总线(2)

1. NoC的路由 在NoC交换信息时&#xff0c;需要确定从源节点到目标节点所经过的路径&#xff0c;这时就需要路由算法来确定该路径。路由算法分为静态路由算法和动态路由算法两种。 静态路由算法对于两节点之间的路径是固定的&#xff0c;结构简单&#xff0c;便于硬件实…

【算法分析与设计】二叉树的层序遍历

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xf…

idea插件开发

1&#xff0c; file-new project 如图&#xff0c;选择了安装路径&#xff0c;报错【select home directory for intellij platform plugin sdk】。&#xff08;注意是安装路径最外层的文件夹&#xff0c;不是里面的lib&#xff0c;jbr这一层级&#xff09; 2&#xff0c;点击了…

HTML前端CSS实现只显示1行或者2行、3行剩余显示省略号

想要做的效果: 文本只一行显示 /**实现思路&#xff1a;1.设置inline-block属相2.强制不换行3.固定高度4.隐藏超出部分5.显示“……”*/ {display: inline-block;white-space: nowrap; width: 100%; overflow: hidden;text-overflow:ellipsis; }文本只多行显示 /** 实现思路&…

spring boot集成redis,以及配置database不生效问题

备注&#xff1a;记录一次spring-boot redis 配置redis.database后&#xff0c;仍然使用db0默认库的情况。 springboot集成redis及相关问题 1. spring boot集成redisredis集成依赖&#xff1a;redis配置序列化 2. 集成redission redis分布式锁等快捷管理工具集成依赖配置注入…

【Java发送邮箱】spring boot 发送邮箱

导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.在properties配置邮箱 # 发件人QQ号 spring.mail.username2508575653qq.com # QQ邮箱授权码 sp…

分享一个asio下使用channel来实现无需队列的安全的连续async_write的方法

分享一个asio下使用channel来实现无需队列的安全的连续async_write的方法 问题&#xff1a;不能直接用asio::async_write连续发送数据 下面这段代码是错误的(为了代码的可读性和易理解&#xff0c;请先忽略函数调用中参数不正确的问题)&#xff1a; asio::async_write(sock,…

xshell配置隧道转移规则

钢铁知识库&#xff0c;一个学习python爬虫、数据分析的知识库。人生苦短&#xff0c;快用python。 xshell是什么 通俗点说就是一款强大ssh远程软件&#xff0c;可以方便运维人员对服务器进行管理操作&#xff0c;功能很多朋友们自行探索&#xff0c;今天只聊其中一个功能点那…

Numpy笔记:安装Numpy+ndarray基本属性+常用方法+索引和切片+广播+轴+范数

Numpy Python库&#xff0c;用于数组快速操作的各种API 支持常见的数组和矩阵操作ndarray处理多维数组 安装Numpy 检查PyCharm的Python运行环境 File–>Settings–>Project–>Python Interpreter检查Python Interpreter环境&#xff0c;例如base 点击Anaconda Prom…

从0开始学习C++ 第三十课 插入排序和快速排序

插入排序 (Insertion Sort) 概念&#xff1a; 插入排序是一种简单直观的排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。 逐步分析&#xff1a; 从数组第二个元素开…

HNU-数据挖掘-实验2-数据降维与可视化

数据挖掘课程实验实验2 数据降维与可视化 计科210X 甘晴void 202108010XXX 文章目录 数据挖掘课程实验<br>实验2 数据降维与可视化实验背景实验目标实验数据集说明实验参考步骤实验过程1.对数据进行初步降维2.使用无监督数据降维方法&#xff0c;比如PCA&#xff0c;I…