C中的数据类型封装机制—void万能类型

简介: C中的数据类型封装机制—void万能类型

C中的数据类型的封装

数据类型封装概念void万能类型

  1. void的字面意义是无类型,void则为无类型指针,void可以指向任何类型的数据。
    用法1:数据类型的封装
    int initHardEnv(void **handle);
    典型的如内存操作函数memcpy和memset的函数原型分别为:
    void * memcpy(void *dest,const void *src,size_t len);
    void * memset(void *buffer,int c,size_t num);
  2. 用法2:void 修饰函数返回值和参数,仅表示无。如果没有返回值,那么应该将其声明为void型。如果没有参数,应该声明其参数为void
  3. void指针的意义
    C中规定只有相同类型的指针才可以互相赋值
    void指针作为左值用于接收任意类型的指针
    void指针作为右值时需要强制类型转换
  4. 不存在void类型的变量
    C语言没有定义void究竟是多大内存别名

关注作者,将持续更新。

下期预告,,,,,数组类型

数组指针 数组类型和数组指针的关系

压死初学者的三座大山

相关文章
|
10月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
4月前
|
存储 定位技术 Swift
Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例
本文深入探讨了 Swift 中的枚举与结构体,包括它们的定义、特性、使用场景及示例。枚举适合表示有限的、离散的状态或选项,结构体则适用于具有特定属性和行为的数据结构。两者在存储方式、继承性和灵活性上有所不同,但在实际开发中常结合使用,以充分发挥各自优势。
99 3
|
9月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
68 0
|
9月前
|
存储 Java C#
C++语言模板类对原生指针的封装与模拟
C++|智能指针的智能性和指针性:模板类对原生指针的封装与模拟
|
10月前
|
C语言 C++
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法(下)
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法
50 0
|
10月前
|
存储 C语言
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法(中)
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法
54 0
|
10月前
|
存储 编译器 测试技术
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法(上)
从C语言到C++_13(string的模拟实现)深浅拷贝+传统/现代写法
66 0
|
10月前
|
存储 C++
在C++语言中函数指针的作用类型
在C++语言中函数指针的作用类型
46 0
|
10月前
|
存储 C# 容器
掌握 C# 变量:在代码中声明、初始化和使用不同类型的综合指南
变量是用于存储数据值的容器。 在 C# 中,有不同类型的变量(用不同的关键字定义),例如: int - 存储整数(没有小数点的整数),如 123 或 -123 double - 存储浮点数,有小数点,如 19.99 或 -19.99 char - 存储单个字符,如 'a' 或 'B'。Char 值用单引号括起来 string - 存储文本,如 "Hello World"。String 值用双引号括起来 bool - 存储具有两个状态的值:true 或 false
140 2
|
10月前
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
52 0