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. 使用FlaycoBanner实现图片轮播效果(加载网络图片)

    FlaycoBanner是一个开源图片轮播框架,支持android2.2及以上: git地址:https://github.com/H07000223/FlycoBanner_Master 在andr ...

  2. PHP中FOREACH()用法

    PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像.这只是一种遍历数组简便方法.foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误. 1. ...

  3. 使用AdvinceInstaller把exe或者msi重新包装成为msi静默安装程序

    最近在学习installShelled打包.net做的软件,其中mysql数据库的静默安装脚本不会写,本人新手勿喷.在不会写脚本的方式下,偶然间看见了这个AdvinceInstaller可以吧.exe ...

  4. 转发-UI基础教程 – 原生App切图的那些事儿

    UI基础教程 – 原生App切图的那些事儿 转发:http://www.shejidaren.com/app-ui-cut-and-slice.html 移动APP切图是UI设计必须学会的一项技能,切 ...

  5. win32自绘按钮,使用GDI+(二)

    一.解决上一篇的两个问题. 1.按钮背景透明 方法是,在绘制按钮之前,向按钮的父窗口发生WM_CTLCOLORBTN消息.该消息返回一个画刷句柄,系统使用该画刷句柄画出按钮的背景.所以我们在处理这个消 ...

  6. SQLite数据库在多线程写锁文件的解决办法

    参考了很多SQLITE数据库多线程的解决办法 我自己写了一个SQLITEHELPER 来解决这个问题 希望大家多多指教 调用的时候  SQLLiteDBHelper _SQLLiteDBHelper ...

  7. noConflict

    var _avalon = window.avalon avalon.noConflict = function(deep) { if (deep && window.avalon = ...

  8. 【JavaScript忍者秘籍】定时器

  9. NGUI实现ScrollView功能

    NGUI,目前Unity3D Assert Store中最火的2D图形界面工具. 本文假设读者有Unity3D使用经验.有基本了解.NGUI3.6.0 1.新建Pannel(Scroll View), ...

  10. Neo4j批量插入(Batch Insertion)

    新建一个maven工程,这里不赘述如何新建maven工程. 添加Neo4j jar到你的工程 有两种方式: 上网站官网下载jar包,根据自己的系统下载不同的压缩包,详细过程不描述,请自行搜索其他博客 ...