C语言入门-类型定义
一、自定义数据类型(typedef)
- c语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字,比如:
- typedef int length; 这样length成为了int类型的别名
- 这样,length这个名字就可以代替int出现在变量定义和参数声明的地方了
length a,b,len;
length numbers[10];
二、Typedef
声明新的类型的名字
- 新的名字是某种类型的别名
- 改善了程序的可读性
typedef long int64_t;
typedef struct ADate{
int month;
int day;
int year;
} Date;
int64_t i = 100000000000;
// ADate是结构体原来的名字,这里可以直接使用Date
Date d = {9,1,2020};
或者直接这样
typedef struct{
int month;
int day;
int year;
}Date;
记住最后一个就是新的名字
typedef int Length; // Length就等价于int类型
typedef *char[10] String; // String是10个字符串的数组的类型
typedef struct node{
int data;
struct node *next;
}aNode;
// 这样用aNode就可以代替struct node
typedef struct node aNode;
联合
- 存储
- 所有的成员共享一个空间
- 同一时间只有一个成员是有效的
- nuion的大小是其最大的成员
- 初始化
- 对第一个成员初始化
C语言入门-类型定义的更多相关文章
- 编译器开发系列--Ocelot语言4.类型定义的检查
这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ...
- [Objective-C语言教程]类型定义:typedef(19)
Objective-C编程语言提供了一个名称为typedef的关键字,可以使用此关键字为类型指定新名称. 以下是为单字节数字定义术语BYTE的示例 - typedef unsigned char BY ...
- C语言bool类型定义
在我们的C语言程序中,经常用到布尔类型,但是C标准并不支持布尔类型,但我们可以自己实现其类型,实现代码如下:typedef enum{ false = 0, ture = !false}bool;
- C语言学习笔记--类型定义&联合
一.类型定义 C语言自定义数据类型 (typedef) C语言提供一个叫做typedef的功能来声明一个已有的数据类型的新名字. typedef int Length; 使得Length成为int类型 ...
- 网易云课堂_C语言程序设计进阶_第三周:结构:结构、类型定义、联合
3.1 枚举 3.2 结构 3.3 类型定义 3.1 枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法来表明: enum 枚举类型名字{名字0,...,名字n}; 枚举类型名字通常并不 ...
- [C语言]进阶|结构类型: 枚举, 结构, 类型定义
--------------------------------------------------------------------- 枚举: // main.c #include <std ...
- 2.go语言入门----变量类型、声明变量、数组、切片
基本变量类型 介绍几种基本的变量类型:字符串.int.float.bool package main import ( "fmt" ) // 列举几种非常基本的数据类型 func ...
- 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书
<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...
- Swift语言入门之旅
Swift语言入门之旅 学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序開始的.那在 Swift,我们使用一句话来实现它: printl ...
随机推荐
- UIView的作用
UIView [UIView的作用] 主要用来显示应用程序的内容,可以作为label.button等控件的容器.表示屏幕上的一块矩形区域,同时可以处理该区域的绘制和触屏事件. MVC,MVVM等设计架 ...
- Java修炼——文件字节输入输出流复制和缓冲流复制
一:文件字节输入输出流复制 首先明确数据源和目的文件,然后就是"中转站",最后就是关闭 package com.bjsxt.ioproject; import java.io.Fi ...
- Python元组tuple(不可变)
Python元组Tuple(不可变): 元组的特点: 1.元组的初始化: tuple = (1, ) #元组只有一个元素的话,初始化时要加,否则当做元素的普通变量类型处理 tuple = (1, 2 ...
- [TimLinux] Python nonlocal和global的作用
1. 执行代码 以下实例都是通过执行以下代码,需要把以下执行代码放在后面实例代码的后面. a = outer_func()print("call a()") a() a() a() ...
- Round-number
Description Most of the time when rounding a given number, it is customary to round to some multiple ...
- python 金融应用(一)期权定价公式的计算
一.基于不付息的欧式期权看涨BSM公式 假定股票服从下列微分方程: 期权定价公式: 二.蒙特卡洛模拟 import numpy as np import math from time import t ...
- iSensor APP 之 摄像头调试 OV9655
iSensor APP 之 摄像头调试 OV9655 iSensor app 非常适合调试各种摄像头,已测试通过的sensor有: l OV7670.OV7725.OV9650.OV9655.OV ...
- 各大中间件底层技术-分布式一致性协议 Raft 详解
前言 正式介绍 Raft 协议之前,我们先来举个职场产研团队的一个例子
- 小白学 Python 爬虫(21):解析库 Beautiful Soup(上)
小白学 Python 爬虫(21):解析库 Beautiful Soup(上) 人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前 ...
- Java并发编程系列-(6) Java线程池
6. 线程池 6.1 基本概念 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理.如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题:如果并发的请求数 ...