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

共用体、枚举类型、typedef定义,位运算

共用体

  union 共用体名 
    {
        数据类型1 成员变量1;
        数据类型2 成员变量2;
        数据类型3 成员变量3;
        ...
    };
    共用体所有成员变量,所占空间重叠,占共同的空间。

枚举

将变量的值一一列举出来。

enum 枚举类型名 
    {
        枚举常量1,
        枚举常量2,
        枚举常量3,
        ..
    };

注意:

  •     1.枚举类型一般说明将来变量的值在给定的常量中选择其一作为它的值
  •     2.枚举常量的值总是前一个枚举常量的值+1,第一个默认为0值
  •     3.枚举常量默认为int类型,可以直接在程序中使用
#include <stdio.h>enum weekday 
{Mon = 1,Tue,Wed,Thu,Fri,Sat,Sun,
};int main(void)
{enum weekday day;printf("请输入今天星期几:\n");scanf("%d", (int *)&day);switch (day){case Monday:printf("1和6限号!\n");break;case Tuesday:printf("2和7限号!\n");break;case Wednesday:printf("3和8限号!\n");break;case Thurday:printf("4和9限号!\n");break;case Friday:printf("0和5限号!\n");break;case Saturday:case Sunday:printf("不限行!\n");}return 0;
}

利用typedef函数声明

        用来声明新的类型名来达到给予类型的作用

typedef int I //I不是变量而是拥有int定义作用的新的类型名typedef int ARRAY[10]  //ARRAY可以定义长度为十的一维整型数组

位运算

位运算符

位运算(所有位运算要操作数的类型是与整形或者整形兼容,或者枚举也可以;但是指针,结构体这些都不可以,不与整形兼容)

运算符含义运算符含义
&按位与(指定位清零)~取反
|按位或(指定位置1)<<左移(左移一位该数乘以2)
^按位异或(指定位翻转,同0异1)>>

右移(算术右移,右移一位该数除以2)

  • 位运算符中除~以外,均为二目运算符,即要求两侧各有一个运算量。
  • 运算量只能是整型或字符型数据。
  • 左移之后,不够补0,可以实现某一位 置1
  • 右移不够向右补0,右移分为算术右移(有符号,前面补1,也可以补0;取决于i的正负,正补 0,负补1;逻辑右移(无符号,前面补0)

位运算举例

1.按位异或实现数据交换:    
a = a ^ b;
b = a ^ b;
a = a ^ b;
2.将能被三整除的比特位 置1.
​int main(void)
{unsigned int i = 0;unsigned int j = 0x422;int k;{for(k = 0;k < 32; ++k){if(k % 3 == 0){i |= (1 << k);}}}printf("%x\n",i);return 0;
}​
3.计算1的个数
int main(void)
{unsigned int i = 0x3;int counter = 0;int k;for(k = 0;k < 32; ++k){if(i & (0x80000000)){++counter;}i = i << 1;}printf("%d\n",counter);return 0;
}

相关文章:

共用体、枚举类型、typedef定义,位运算

共用体 union 共用体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... }; 共用体所有成员变量&#xff0c;所占空间重叠&#xff0c;占共同的空间。 枚举 将变量的值一一列举出来。 enum 枚举类型名…...

【运维】Linux如何批量解压文件夹下的很多个`.tar.gz`文件

要在Linux中批量解压这些.tar.gz文件&#xff0c;你可以使用tar命令配合find或者bash的通配符功能。这里是一个简单的步骤来解压所有这些.tar.gz文件&#xff1a; 方法 1: 使用 find 命令 find . -type f -name "*.tar.gz" -exec tar -xzvf {} \;这个命令的意思是从…...

centos9安装jumpserver并导入域用户

jumpserver是使用最广泛的开源堡垒机&#xff0c;依赖 mysql/mariadb、postgresql、redis 3个数据库。 当前版本为 4.0.1&#xff0c;安装包&#xff1a; jumpserver-ce-v4.0.1-x86_64.tar.gz 0、安装centos9&#xff0c;安装docker 1、解压安装包 cd /opt tar -xf jumpser…...

将一批 csv 的第一行抄进 Excel

某目录下有一批结构相同的 csv 文件&#xff1a; stock_301500.csvstock_320688.csv CODE,DT,OP,CL 301500,2023-06-02,71,67.8 301500,2023-06-05,79.35,72.61 301500,2023-06-06,75.8,77.65 CODE,DT,OP,CL 320688,2023-06-02,33,32 320688,2023-06-05,28.37,30.23 320688,2…...

【传知代码】LAD-GNN标签注意蒸馏(论文复现)

近年来&#xff0c;随着图神经网络&#xff08;GNN&#xff09;在各种复杂网络数据中的广泛应用&#xff0c;如何提升其在大规模图上的效率和性能成为了研究的热点之一。在这个背景下&#xff0c;标签注意蒸馏&#xff08;Label Attention Distillation&#xff0c;简称LAD&…...

JVM调优篇:探索Java性能优化的必备种子面试题

JVM内存模型 首先面试官会询问你在进行JVM调优之前&#xff0c;是否了解JVM内存模型的基础知识。这是一个重要的入门问题。JVM内存模型主要包括程序计数器、堆、本地方法栈、Java栈和方法区&#xff08;1.7之后更改为元空间&#xff0c;并直接使用系统内存&#xff09;。 正常…...

常见的内存泄漏及其解决方案

内存泄漏是Java开发中一个常见且令人头疼的问题&#xff0c;即使在使用垃圾回收机制的Java中&#xff0c;也无法完全避免内存泄漏的出现。当对象不再需要时却仍然占据着内存&#xff0c;导致内存使用量不断增加&#xff0c;最终可能导致 OutOfMemoryError。本文将深入探讨Java中…...

SQLSERVER 触发器记录表某个字段更新记录

想要记录该字段的原值和现有值&#xff0c;触发器写法&#xff1a; CREATE TRIGGER tr_UpdateEmployeeDepartment ON Employees AFTER UPDATE AS BEGINSET NOCOUNT ON; -- 避免多余的计数消息IF UPDATE(Department) -- 检查是否更新了 Department 字段BEGININSERT INTO Update…...

现代前端架构介绍(第一部分):App是如何由不同的构建块构成的

远离JavaScript疲劳和框架大战&#xff0c;了解真正重要的东西 几周前&#xff0c;我的同事们对我们的前端架构、代码结构和面临的挑战很感兴趣。在做了几次关于如何构建可扩展且健壮的前端的演讲后&#xff0c;我觉得把它们都总结一下并与社区分享我们的策略是一个不错的主意。…...

Android 11 关于按键拦截/按键事件处理分享

系统在frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java处理按键事件,不管是物理按键还是 SystemUI的nav_bar上的虚拟按键(使用了KeyEvent类中的,比如:KeyEvent.KEYCODE_VOLUME_UP). 主要注意的有两个函数&#xff1a; interceptKeyBef…...

最新TomatoIDC开源虚拟主机销售系统源码/有插件系统模块+模版系统

源码简介&#xff1a; 最新TomatoIDC开源虚拟主机销售系统源码&#xff0c;它有一个方便扩展的插件和模版系统模块&#xff0c;使用实用。 TomatoIDC&#xff0c;一款遵循GPL3.0协议的开源虚拟主机销售系统&#xff0c;不仅有着可以轻松扩展的插件系统和模版系统&#xff0c;…...

简单的docker学习 第4章docker容器

第4章 Docker容器 4.1 容器基础 4.1.1 容器启动流程 通过 docker run 命令可以启动运行一个容器。该命令在执行时首先会在本地查找指定的镜像&#xff0c;如果找到了&#xff0c;则直接启动&#xff0c;否则会到镜像中心查找。如果镜像中心存在该镜像&#xff0c;则会下载到…...

PHP中如何声明数组

数组是一种数据结构&#xff0c;用于存储一系列的值或对象&#xff0c;这些值或对象可以通过索引&#xff08;或键&#xff09;来访问。在PHP中&#xff0c;数组是一种复合类型的数据结构&#xff0c;可以存储多个值&#xff0c;这些值可以是整型、字符串、布尔值&#xff0c;甚…...

JavaScript前端面试题——fetch

什么是fetch&#xff1f; fetch&#xff1a;fetch是浏览器内置的api&#xff0c;用于发送网络请求 ajax&axios&fetch的关系 ajax&#xff1a;ajax 是一种基于原生 JavaScript 的异步请求技术。它使用 XMLHttpRequest 对象来发送请求和接收响应。 axios&#xff1a;…...

在Qt中获取Windows中进程的PID

主要是用到了系统自带的工具【tasklist.exe】 利用 QProcess调用这个tasklist有一点坑&#xff0c;已经在代码中指出了。 指定为csv格式输出的话&#xff0c;在后处理时比较方便。 QList<quint64> listProcessIdentifier(QString processName) {QProcess process;QStrin…...

8.1-java+tomcat环境的配置+代理

一、回顾 1.安装nodejs&#xff0c;这是一个jdk一样的软件运行环境 yum -y list installed|grep epel yum -y install nodejs node -v 2.下载对应的nodejs软件npm yum -y install npm npm -v npm set config .....淘宝镜像 3.安装vue/cli command line interface 命令行…...

gorm框架实现基本的增删改查

连接数据库 package mainimport ("github.com/jinzhu/gorm"_ "github.com/jinzhu/gorm/dialects/mysql" )func main() {db, err : gorm.Open("mysql","root:roottcp(127.0.0.1:3306)/test?charsetutf8mb4&parseTimeTrue&locLocal…...

AUTOSAR介绍

1、AUTOSAR架构介绍 AUTOSAR(AUTomotive Open System ARchitecture&#xff0c;汽车开放系统架构)是汽车和软件行业领先公司的全球合作联盟&#xff0c;为智能移动开发和建立标准化的软件框架以及开放的E/E系统架构。考虑到目前和未来市场中不同的汽车E/E架构&#xff0c;AUTOS…...

10. 计算机网络HTTP协议

1. 前言 无论是作为后端开发、前端开发、测试开发程序员或者是运维人员,在面试过程中,大概率都会被问到 HTTP 协议相关题目。 因为伴随着 2010 年之后移动互联网在全世界的高速发展,各种各样的浏览器(Chrome、FireFox、Safari 等)层出不穷,也诞生了诸多服务端开发的语言…...

“职场中,不要和上司作对”,真的很重要吗?你认同这句话吗?

在职场上&#xff0c;领导对下属的期望永远都只有两个字&#xff0c;不是忠诚&#xff0c;也不是能力&#xff0c;而是省心。 领导对下属的要求就是别让我操心。 在职场中&#xff0c;通常面临的首要问题就是如何与领导相处。 把职场中的前辈当作老师来尊重&#xff0c;你尊…...

可视化目标检测算法推理部署(一)Gradio的UI设计

引言 在先前RT-DETR模型的学习过程中&#xff0c;博主自己使用Flask框架搭建了一个用于模型推理的小案例&#xff1a; FlaskRT-DETR模型推理 在这个过程中&#xff0c;博主需要学习Flask、HTML等相关内容&#xff0c;并且博主做出的页面还很丑&#xff0c;那么&#xff0c;是…...

【PyTorch】基于YOLO的多目标检测项目(一)

【PyTorch】基于YOLO的多目标检测项目&#xff08;一&#xff09; 【PyTorch】基于YOLO的多目标检测项目&#xff08;二&#xff09; 目标检测是对图像中的现有目标进行定位和分类的过程。识别的对象在图像中显示有边界框。一般的目标检测方法有两种&#xff1a;基于区域提议的…...

spring boot 实现 Stream 钉钉事件订阅

1: 参考链接 https://open.dingtalk.com/document/orgapp/develop-stream-mode-push-server 2&#xff1a;钉钉开放平台订阅配置 配置之后运行一下上面提供的链接 里面的main方法&#xff0c;验证通道 3&#xff1a;订阅启动方式 EventListenerThread eventListenerThrea…...

基于 Rough.js 的 Vue 散点图绘制

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Rough.js 的 Vue 散点图绘制 应用场景 本代码展示了如何使用 Rough.js 库在 Vue 应用程序中绘制散点图。Rough.js 是一个轻量级 JavaScript 库&#xff0c;用于创建具有手绘风格的可视化效果。散点图是一…...

【c++】用c++指针传递来模拟“靶向治疗”

一:源码: #include <iostream>void targetedTherapy(bool* flag) {if (*flag == false) {*flag = true;} }int main() {//代表一系列癌细胞//true为健康细胞 false为癌变细胞bool cancerCell[7] = {true, false, true, true, true, true, false};for (int i = 0; i &…...

如何开启idea中的断言功能?

目录 一、什么是断言&#xff1f; 二、Java断言的语法 三、开启断言 一、什么是断言&#xff1f; 断言&#xff08;assert&#xff09;是 Java 中的一条语句&#xff0c;一种在程序中的逻辑&#xff08;如一个结果为真或假的逻辑判断式&#xff09;&#xff0c;目的是验证软…...

大模型之语言大模型技术

本文作为大模型综述第二篇,介绍语言大模型基本技术。 近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上…...

浮点数例外 (核心已转储) 的问题记录

一般这种问题&#xff0c;是程序运行过程中出现浮点数运算错误导致的程序崩溃 浮点异常可能由以下几个原因引起&#xff1a; 除以零&#xff1a;当程序中出现除以零的操作时&#xff0c;会触发浮点异常。例如&#xff0c;当一个数除以0时&#xff0c;会导致浮点异常。数值溢出…...

Vite项目中根据不同打包命令配置不同的后端接口地址,proxy解决跨域

在vite.config.ts同级目录添加两个文件 .env.development #开发环境 VITE_APP_ENV developmentVITE_APP_BASE_API .env.production #生产配置 VITE_APP_ENV productionVITE_APP_BASE_API https://www.bdjw.work代码中使用路径 const request axios.create({baseURL: i…...

Java新手启航:JDK 21 版本安装,开启编程之行

在Java开发前&#xff0c;JDK是必不可少的环境&#xff0c;接下来&#xff0c;让我们一起完成JDK 21版本的下载和安装&#xff01; 种一棵树最好的时间是10年前&#xff0c;其次就是现在&#xff0c;加油&#xff01; …...

东莞seo关键词搜索关键词/国际站seo优化是什么意思

本文分享一个好用的php与mysql操作类&#xff0c;此mysql类与其它类的不同在于&#xff0c;可以设置表的读、写锁。有需要的朋友参考下吧。分享一个php与mysql操作类&#xff0c;代码&#xff1a;getConnected()) {$this->closeConnection();}if($this->connection ($bP…...

临安规划建设局网站/网页开发用什么软件

前言&#xff1a;前面讨论了信号、管道的进程间通信方式&#xff0c;接下来将讨论消息队列。一、系统V IPC三种系统V IPC&#xff1a;消息队列、信号量以及共享内存(共享存储器)之间有很多相似之处。每个内核中的 I P C结构(消息队列、信号量或共享存储段)都用一个非负整数的标…...

嘉祥网站建设多少钱/网络营销以什么为中心

打开文件&#xff0c;路径为 C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallSqlState.sql v2.0.50727 版本根据自己的framework版本选择 ASPState 存放的是.NET 访问的session&#xff0c;避免了session丢失的问题&#xff0c;但是会影响交互的效率转载于:https://w…...

东莞网站建设推广公司/优秀软文案例

mac下所有vim的配色方案的样式。 下面讲解如何设置这些好看的配色 首先&#xff1a;在终端输入 vim ~/.bash_profile 查看是否有上面提到的某些配色&#xff0c;所有配色均是以.vim结束的&#xff0c;果有的话&#xff0c;再输入&#xff1a; $ cd ~/ 到用户主目录&#xff0c;…...

建筑网结构/南宁seo怎么做优化团队

前言 Puerts&#xff0c;准确的说应该叫做&#xff1a;普洱TS。puerts是腾讯出品的一个游戏引擎下的TypeScript编程解决方案&#xff0c;基于Unreal和Unity双引擎。 或者换句话说&#xff1a;puerts 是 Unity/Unreal 的一个 JS 运行环境。让我们可以在Unity/Unreal里面通过js…...

私募基金网站开发流程/百度关键词推广帝搜软件

dplyr函数进行数据转换 筛选知识铺垫比较运算符逻辑运算符数据准备filter()函数筛选行select()函数筛选列arrange()函数排列行完整代码dplyr()函数是R语言数据分析必学的实用包之一。 本文现阶段先讲解dplyr()函数的几个常用于数据转换的函数&#xff1a;filter()函数、select(…...