首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏C语言讲解

    定义类型详解(2

    通讯录中可以存放100个人的信息 增加联系人 删除指定联系人 修改指定联系人 查找指定联系人 显示所有联系人的信息 排序功能 首先,我们需要三个文件: test.c - 测试通讯录 contact.h - 函数和类型的声明 contact.c - 函数的实现 设计保存人的信息的这个结构体: //contact.h //类型的声明 typedef struct PeoInfo { char name[20]; int break; } } while (input); } int main() { test(); return 0; } 我们要实现通讯录的各项功能,首先要有通讯录:一个 PeoInfo 类型的数组 void* p2) { return ((PeoInfo*)p1)->age - ((PeoInfo*)p2)->age; } void SortContact(Contact* pc) { assert void* p2) { return ((PeoInfo*)p1)->age - ((PeoInfo*)p2)->age; } void SortContact(Contact* pc) { assert

    44510编辑于 2024-01-22
  • 来自专栏Initial programming

    初识C语言·自定义类型(2)

    1 结构体的声明和定义 什么是结构? 结构也就是元素的集合,在C语言里面,结构体里面的可以有多个变量,类似于集合中的元素,结构体里面的元素被叫做成员变量,成员变量可以是不同类型的多个变量,那么创建好结构体之后,定义的就是结构体变量,那么结构体的创建用到的是关键字 struct,创建如下: struct teg { member list;//成员变量 }variable-list;//结构体变量 variable-list在创建的时候是不用写的,这种写法是定义结构体的同时创建好结构体变量 只用一次 不常用 return 0; } 当我们创建了两个成员变量是一样的匿名结构体变量的时候,使用结构体指针想要取地址就会发现系统报警告说类型不兼容,这是匿名结构体的特点。 实际写代码的时候,我们着重将同一类型的放一起,浪费的空间就没有那么多。

    32410编辑于 2024-10-16
  • 来自专栏我的计算机成长

    定义类型:结构体,枚举,联合 (2)

    位段的成员可以是 int unsigned int signed int 或者是 char (属于整形家族)类型 2. , SECRET }; enum Color//颜色 { RED, GREEN, BLUE }; 以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。 我们可以使用 #define 定义常量,为什么非要使用枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符比较枚举有类型检查,更加严谨。 3. 联合(共用体) 4.1 联合类型定义 联合也是一种特殊的自定义类型 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。 c是short类型的数组,最大对齐数是2,i的最大对齐数是4,但是c占14个字节,那么就是16. union Un1 { char c[5]; int i; }; union Un2 { short

    39410编辑于 2024-01-23
  • 来自专栏Vehicle攻城狮

    Simulink Tutorial 2:枚举、宏定义、强制类型转换及类型别名

    作为 Simulink Tutorial系列的第二篇,这次楼主介绍的会有点多,内容主要包括: 1、枚举类型变量的定义和使用 2、宏定义和使用 3、强制类型转换 4、数据类型别名 1 枚举类型-enum : 有时枚举变量是在别的.h文件中定义,而模块需要引用.h文件,此时需要修改Result.m文件,使用method方法,将定义的Result的枚举类放在自己定义的头文件中。 2定义-#define 宏定义在嵌入式开发中可以说占有举足轻重的作用,底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。 例如有unsigned char类型的变量,在定义变量时就得这样写: unsigned char a ; unsigned char看起来就是多余的,但不写又会报错,如果为unsigned char 这次篇幅有点长,主要介绍了如何用Simulink在枚举变量、宏定义、强制类型转换和类型别名四方面做一些配置从而生成可读性强的代码,啰嗦的有点多,谬误之处还请大家指正。 5

    4.4K21编辑于 2022-04-19
  • 来自专栏c++与qt学习

    SpringBoot2---自定义类型转换器

    我们可以给WebDataBinder(数据绑定器)里面放自己的Converter(转换器) 自定义 Converter—对应配置类实现WebMvcConfigurer接口完成对springmvc默认配置的修改 @Configuration//表明这是一个配置类 public class WebConfig implements WebMvcConfigurer { //自定义Stirng --->Pet的类型转换器 @Override public void addFormatters(FormatterRegistry registry)

    69820发布于 2021-11-15
  • 来自专栏HUC思梦的java专栏

    struts2定义类型转换器

    2、注册类型转换器 a、局部类型转换器:只对当前动作有效 在动作类所在的包中,建立一个名称为“动作类名-conversion.properties”的配置文件, 内容如下: 字段名=com.itheima.convertor.MyDateConvertor b、全局类型转换器: 在应用的构建路径中,建立一个名称为“xwork-conversion.properties”的配置文件, 内容如下: java.util.Date=com.itheima.convertor.MyDateConvertor

    64520发布于 2020-09-03
  • 定义类型——结构体类型

    一,结构体类型的声明 1.结构体的声明 struct tag      //结构体类型名 {     member-list;  //结构体成员 };  //分号不能丢   2,结构体类型的创建和初始化 下面这种为匿名创建 struct  {     char name[20];//姓名     int age;//年龄     char sex[5];//性别 }s; 这是一个匿名结构体类型 2,其他成员要对齐到某一个数字(对齐数)的整数倍的地址处。 对齐数=编译器默认的对齐数与该成员变量大小的较小值。 2,位段的后面必须有一个冒号和一个数字。 struct  s {     int a:2;  //a只占2个比特位     int b:5;  //b只占5个比特位     int c:10; //c只占10个比特位     int

    18610编辑于 2025-12-30
  • 来自专栏老怪兽的前端之旅

    (四)定义 props 类型

    # 一、定义 props 类型 第一种方式无法自动推断出类型 <script setup lang="ts"> defineProps(['id', 'title', 'price', 'isStock ']) </script> 2. 使用 TypeScript 的方式定义 <script setup lang="ts"> // 使用 interface 定义 interface Product { id: number, { title: '默认标题', price: 100, isStock: true, }) </script> # 总结-写在最后 说明 vue 不支持使用外部导入进来的类型限制 ,比如通过 import 这种导入进来的不行,必须定义在内部

    76420编辑于 2023-02-22
  • 来自专栏老怪兽的前端之旅

    (二)Ref 类型定义

    # 一、定义 ref 类型的三种方式 自动推断 <script setup> import { ref } from 'vue' const num = ref(0) </script> 2. 显示定义类型(需要导入 Ref) <script setup> import { ref, Ref } from 'vue' const str: Ref<string> = ref('str') < setup> import { ref } from 'vue' const bool = ref<boolean>(true) </script> # 总结-写在最后 说明 ref 和 reactive 定义类型是一样的

    1.4K20编辑于 2023-02-22
  • 来自专栏老怪兽的前端之旅

    (五)定义 emits 类型&原生 DOM 元素类型

    一、定义 emits 类型&原生 DOM 元素类型 定义定义触发事件(调用签名) const emit = defineEmits<{ (e: "事件名字"): void (e: " 事件名字"): void (e: "事件名字", 传递字段名: 类型): void }>() // 获取 DOM 元素的时候需要进行强制转换类类型 function sendEmit() { emit('事件名字', 传递单数) } 强制转换 DOM 类型(DOM 类型查看文档) const emit = defineEmits<{ (e: "事件名字"): void (e: "事件名字"): void (e: "事件名字", 传递字段名: 类型): void }>() // 获取 DOM 元素的时候需要进行强制转换类类型 function sendEmit const value = (e.target as HTMLSelectElement).value // 这里获取到的是 true 或 false emit('事件名字', 字段名: 类型

    97640编辑于 2023-02-22
  • 来自专栏C语言

    定义类型:结构体详解

    在C语言中数据类型分为内置类型(int,char等)和自定义类型(数组,结构体,联合体,枚举),所以结构体是自定义类型之一。那为什么会有结构体呢? 2 结构体的声明 结构体的说明相当于我们声明一个整型类型int一样规定了其存放的是整型类型,即结构体的说明规定了这个自定义类型中可以存放什么数据。 4 结构的特殊声明【匿名结构体类型】 4.1 定义:在声明结构的时候,可以不完全的声明即把结构体标签省略掉。 :就是我们如果使用匿名的结构体类型,如果没有对结构体类型重命名的话,只能使⽤⼀次,即我们只能定义s1这一个结构体变量。 2.3嵌套结构体的对⻬类型 题目分析:先分析一下s2占16个字节,再分析s1,a占一个字节,因为struct s2 s的字节数为16,而其最⼤对⻬为8,所以从第8个字节开始存放,接着再存放i。

    19510编辑于 2025-12-30
  • 来自专栏老怪兽的前端之旅

    (七)provide inject 类型定义

    # 一、provide / inject 类型定义 # 定义 provide 值的类型 import {InjectIonKey } from 'vue' // 使用 Symbol() 来定义key 因为他不能被重复定义 export default const Theme = Symbol() as InjectIonKey<值的类型> # 传递 provide 值 <script setup lang ts"> import Theme from 'Theme.js' provide(Theme, '需要传递的值') </script> # 接收 inject 值 因为 Symbol 不允许被重复定义 theme = inject(Theme) # 二、第二种方式定义 provide('title', '这是我需要传递的内容') // 此时因为传递和接收在不同的文件,无法自动判断出是啥类型,默认是 unknown const title = inject('title') // 可以使用泛型来指定类型 cosnt title = inject<string>('title')

    74910编辑于 2023-02-22
  • 来自专栏C语言

    定义类型:联合和枚举

    一 ⾃定义类型:联合 1 联合体类型的声明/定义/赋值 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。 但是编译器只为最⼤的成员分配⾜够的内存空间。 定义/赋值 2 联合体的特点 联合体的特点在于联合的成员是共⽤同⼀块内存空间的,这样⼀个联合变量的⼤⼩,⾄少是最⼤成员的⼤⼩(因为联合⾄少得有能⼒保存最⼤的那个成员)。 声明枚举类型的时候也可以自由赋初值。 2 枚举类型的使⽤ 注意:那是否可以拿整数给枚举变量赋值呢?在C语⾔中是可以的,但是在C++是不⾏的,C++的类型检查⽐较严格。 2 枚举类型的优点 为什么使⽤枚举? 我们可以使⽤ #define 定义常量,为什么⾮要使⽤枚举? 枚举的优点: 1. 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4. 使⽤⽅便,⼀次可以定义多个常量 5.

    14410编辑于 2025-12-30
  • 来自专栏C++破军之路

    定义类型详解

    结构的每个成员可以是不同类型的变量。 大部分的参考资料都是这样说的 : 1.平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的,某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 struct S1 {     char c1;     int i;     char c2; }; struct S2 {     char c1;     char c2;     int i; }; 例证:S1和S2类型的成员一模一样,但是S1和S2所占空间的大小有了一些区别 默认对齐数的修改:#pragma pack(对齐数) 结构体传参 #include<stdio.h> struct 枚举类型定义 枚举的优点 1.增加代码的可读性和可维护性 2.和#define定义的标识符比较枚举有类型检查,更加严谨 3.防止了命名污染  4.便于调试,使用方便,一次可以定义多个常量  枚举类型的大小就是一个整形的大小

    54110编辑于 2024-06-04
  • 来自专栏老怪兽的前端之旅

    (八)template ref 类型定义

    一、template 的 ref 类型定义

    这个是需要获取的 DOM 元素
    <script setup lang="ts"> import { getDom } from 'vuex' const getDom = ref<HTMLSelectElment | null>(null) </script> 总结-写在最后 说明 当我们定义需要获取原生的 DOM 的时候需要给他定义联合类型为 null 因为页面刚渲染的时候他还没有值,给他赋值 null 当我们不知道原生的 HTML 是啥类型的时候,可以把 HTML 先打出来 vscode 就会进行提示 当不确定一个参数是否有值的时候

    50020编辑于 2023-02-22
  • 来自专栏番茄_C语言

    定义类型详解

    ,你也可以在别的地方定义这个变量,因为你已经创建了一个新的类型,一个新的结构体类型 2.如何使用结构体类型 创建完了一个结构体类型,那我们应该这样去使用这个结构体类型呢? ,你也可以在别的地方定义这个变量,因为你已经创建了一个新的类型,一个新的结构体类型 int main() { struct abc a2 = {.b='c',.a=10,.c=3.14};//通过.符号来无序的初始化结构体变量 二、枚举类型 1.枚举类型定义 #include<stdio.h> enum sex { male, female, no };//这里就定义了一个关于性别的枚举类型,它会按照从0开始的顺序给male 增加代码的可读性和可维护性 2. 和 #define 定义的标识符比较枚举有类型检查,更加严谨。 3. 防止了命名污染(封装) 4. 便于调试 5. 使用方便,一次可以定义多个常量 三、联合体类型 1.联合体类型定义 这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。

    53910编辑于 2024-01-19
  • 来自专栏C语言入门到精通

    4.1 串类型定义

    2、随着语言加工程序的发展,产生了字符串处理。 02定义  1、串(string)(或字符串)是由零个或多个字符组成的有限序列。 2、零个字符的串称为空串,它的长度为零。

    1.3K2423发布于 2020-12-09
  • 定义类型:联合和枚举

    前言 与结构体类似,联合体也是一个自定义类型,大家或许在某些地方发现相同之处,二者可以相互借鉴,但不能混淆在一起哦~ ,枚举与二者都不同,敬请期待~ 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成 ,这些成员可以不同的类型。 #include <stdio.h> //联合类型的声明 union Un { char c; int i; }; int main() { //联合变量的定义 union Un un = { enum Color//三原色 { RED=2, GREEN=4, BLUE=8 }; 看到这,有人可能会想到我们之前学习过的 #define宏定义,它与枚举有什么区别或者优劣呢? 增加代码的可读性和可维护性 2. 和#define定义的标识符⽐较枚举有类型检查,更加严谨。 3. 便于调试,预处理阶段会删除 #define 定义的符号 4.

    17710编辑于 2026-01-14
  • 来自专栏C语言入门到精通

    4.1 串类型定义

    2、随着语言加工程序的发展,产生了字符串处理。 02 定义 1、串(string)(或字符串)是由零个或多个字符组成的有限序列。 2、零个字符的串称为空串,它的长度为零。

    9403029发布于 2019-07-12
  • 来自专栏全栈程序员必看

    变量以及数据类型_数据类型定义

    如下代码: void main() { int a=1;// 定义了一个整型变量,取名为a, 并赋值为1 (强数据类型语言) int b=3;// 定义了一个整型变量,取名为b, 并赋值为 变量的数据类型 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(使用字节多少表示)。 1100001)——>码值(97)——> 字符’a’——>读取(显示) 字符和码值的对应关系是通过字符编码表决定的(是规定好) 布尔类型 基本介绍 C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以 0为假,非0为真 [案例] 但这种做法不直观,所以我们可以借助C语言的宏定义 。 C语言标准(C99)提供了_Bool 型, _Bool仍是整数类型,但与一般整型不同的是,_Bool变量只能赋值为0或1,非0的值都会被存储为1, C99还提供了一个头文件<stdbool.h> 定义

    1.6K10编辑于 2022-11-01
领券