void

void修饰函数返回值和参数

  • 如果函数没有返回值,那么应给将其声明为void
  • 如果函数没有参数,应该声明其参数为void

不存在void类型的变量

void指针的意义

  • C语言规定只有相同类型的指针可以相互赋值
  • void* 指针作为作为左值用于“接收”任意类型的指针
  • void* 指针作为右值使用时需要进行强制类型转换

例子:void *实现MemSet

#include <stdio.h>

void MemSet(void* src, int length, unsigned char n)
{
unsigned char* p = (unsigned char*)src; int i = 0; for(i=0; i<length; i++)
{
p[i] = n;
}
} int main()
{
int a[5];
int i = 0; MemSet(a, sizeof(a), 0); for(i=0; i<5; i++)
{
printf("%d\n", a[i]);
} return 0;
}

小结

  • void是一种抽象的数据类型
  • void类型不能用于定义变量
  • void类型用于声明函数无参数
  • void类型用于声明函数无返回值
  • 可以定义void类型的指针
  • void* 类型的指针可以接受任意类型的指针值

08void的更多相关文章

随机推荐

  1. linux命令:du

    1.命令介绍: du用来查看文件和目录的使用空间. 2.命令格式: du [选项] 文件 3.命令参数: -a或-all  显示目录中个别文件的大小. -b或-bytes  显示目录或文件大小时,以b ...

  2. 继续向peersim的event-driven模式开火!(新手勿喷)

    昨天学习了peersim的cycle模式,今天开始继续悟事件模式. 总的来说,我个人认为事件模式是周期模式的升级版,或者说,周期模式只是事件模式的一个子功能. 事件模式是基于时间和事件的(没打错),每 ...

  3. git 较基础命令

    还需要进一步了解git的组织形式: git clone *.git 下载下来以git方式管理 如果直接下载压缩包做不到 git branch 分支相关命令 git checkout 可以换分支 git ...

  4. Caffe 源碼閱讀(六) data_layer.cpp

    >>>>>>>>>>>>>>>>>>>>>>>>> ...

  5. <转>思考力是万力之源

    做任何事情,要懂得积累和总结 每天进步一点点,一年365天下来就不得了   来自为知笔记(Wiz)

  6. Newtonsoft.Json 处理多态类型的反序列化

    Newtonsoft.Json的序列化和反序列化很成熟也很好用, 最近在处理多态类型的反序列化中遇到了问题, 反序列化后只能到基类,而得不到也不能转换到子类.从网上查询了一番后,需要写一个创建类型的C ...

  7. eclipse中jre system library ,web app libraries,referenced libraries,user libraries

    在eclipse ide中进行开发时,为了方面jar的管理用了user libraries,但是遇到了一些问题,对于其中jre system library ,web app libraries,re ...

  8. Python 基礎 - 字符串常用操作

    字符串常用操作 今天就介紹一下常用的字符串操作,都是以 Python3撰寫的 首字母變大寫 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = & ...

  9. Android之ListView&ViewPager模拟新闻界面

    模拟新闻 APP 的界面 1)写 ListView 之前先写布局: 这里有两种 Item 的布局: <?xml version="1.0" encoding="ut ...

  10. sudo add-apt-repository no found解决方法

    sudo apt-get install python-software-propertiessudo apt-get install software-properties-common