void 订阅
中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 展开全文
中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
信息
属    性
编程术语
外文名
void
释    义
无类型指针
中文名
无类型
void含义
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义,不妨试着定义:void a;这行语句编译时会出错,提示“illegal use of type 'void'”。不过,即使void a的编译不会出错,它也没有任何实际意义。void真正发挥的作用在于:(1) 对函数返回的限定;(2) 对函数参数的限定。众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。例如:其中p1 = p2语句会编译出错,提示“'=' :必须改为:而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包容“无类型”。道理很简单,我们可以说“男人和女人都是人”,但不能说“人是男人”或者“人是女人”。下面语句编译出错:提示“'=' :
收起全文
精华内容
下载资源
问答
  • void

    千次阅读 2014-02-25 08:43:11
    一、void 1、void 是一种“抽象类型”,sizeof(void) = 0,故不允许使用void来定义变量。 例如:void void_variable  int func(void void_argument) 都是错误的。 2、void 作为函数返回值的限定 在C89标准中,如果...
    一、void

    1、void 是一种“抽象类型”,sizeof(void) = 0,故不允许使用void来定义变量。
    例如:void void_variable
               int func(void void_argument) 都是错误的。

    2、void 作为函数返回值的限定
    在C89标准中,如果某个函数没有返回值,那么返回类型为void。 例如void add(int a, int b)。
    假如某个函数没有限定返回类型,例如 add(int a, int b),那么编译器默认的返回类型是整数类型。
    void add(int a, int b){    /*error*/
         return a + b;
    }

    add(int a, int b) {          /*OK*/
         return a + b;
    }

    3、void 作为函数的参数
    如果某个函数没有参数,那么将其声明为void。例如int func(void)。
    假如某个函数没有参数,但是没有声明为void,则int func(),则在调用func函数时,可以接受任何参数。
    int func(void) {
        return 0;
    }
    func(2);                //error
    func(2.5);             //error
    func(2, 'a');           //error

    int func(){
        return 0;
    }

    func(2);                     /*OK*/
    func(2.5);                  /*OK*/
    func(2, 2.5);              /*OK*/

    二、void*

    1、void*可以声明变量,它是真实存在的。
    void *p;
    sizeof(void*) = 4
    sizeof(p) = 4
    sizeof(void) = 0;

    2、void *能够指向任何类型的数据,也就是说任何类型的数据指针都可以赋值给void*指针。
    int *p1;
    float *p2
    void *p;
    p = p1;    /* OK */
    p = p2     /* OK */

    3、void*指针是不能做计算的,因为不知道void*指向的数据类型。
    /* error C2036: “void *”: 未知的大小 */
    void *p;
    p++;   

    本人现经营一个微信订阅号如下:欢迎大家关注,获取相关内容。
    订阅号账号是:begginghard_zgh

    订阅号名称是:读书笔记 By 张光辉



    展开全文
  • C语言中的voidvoid指针-void*

    千次阅读 2018-05-10 16:55:59
    void 关键字 void指针的作用 使用方式 void指针与函数 void 关键字 当函数返回值为空时,可以使用voidvoid empty(int a); 当函数参数列表为空时,可以使用voidvoid empty(void); void...


    void 关键字

    • 当函数返回值为空时,可以使用void。
    void empty(int a);
    
    • 当函数参数列表为空时,可以使用void。
    void empty(void);
    

    void指针的作用

    void指针:void *

    可以用其指代任何类型的指针。

    但不能用void指针直接进行操作;只能转换成对应类型指针后,才能操作

    使用方式

    enum Season {
      Spring, Summer = 18, Autumn, Winter
    } season;
    enum Season *s = &season;
    void* vs = s;
    //printf("vs= %d\n", vs); //error  不能直接用于操作
    int* ns = (int*)vs; //转换成对应的 int型指针
    printf("ns= %d\n", *ns);
    

    void指针与函数

    因其可以指代任何类型的指针。所以将void指针作为函数参数时,表示接受任意类型的指针参数

    void test(void* a) {
      printf("void* --> %d\n", * (int*)a);
    }
    main() {
      int m = 10;
      int *p = &m;
      test(p);
    }
    
    展开全文
  • javascript中void(0);用法及常见问题解析

    万次阅读 多人点赞 2018-06-08 23:08:14
    使用过ajax的朋友经常会见到这样的代码:here,这里面的void是一个操作符,该操作符指定要计算一个表达式但是不返回值。javascript:void(0) 在某些情况下会有浏览器不兼容的bug。下面我们先来看下javascript:void(0)...

    转载这篇文章

    javascript:void(0);用法及常见问题解析

    使用过ajax的朋友经常会见到这样的代码:here,这里面的void是一个操作符,该操作符指定要计算一个表达式但是不返回值。javascript:void(0) 在某些情况下会有浏览器不兼容的bug。下面我们先来看下javascript:void(0) 的基础介绍及用法,然后再来看使用它会出现什么问题,该怎么解决。

    提示:在学习一下内容之前,你可以先通过javascript:void(0) 含义一节的内容来了解或者复习什么是javascript:void(0) !

     

    void 操作符用法格式如下: 
    1. javascript:void (expression) 
    2. javascript:void expression 

    expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0) 

    你可以使用 void 操作符指定超级链接。表达式会被计算但是不会当前文档处装入任何内容。 

    下面的代码创建了一个超级链接,当用户以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。

    <A HREF="javascript:void(0)">单此处什么也不会发生</A>

     

    下面的代码创建了一个超级链接,用户单时会提交表单。

    <A HREF="javascript:void(document.form.submit())">单此处提交表单</A>

     

    下面代码则执行了subgo()函数,

    <a href="javascript:void(0)"onclick="subgo()">点我</a>

     

    在这里,javascript:void(0),没启实质上的作用,它仅仅是一个死链接,执行的函数是subgo()。

    <a href="#" onclick="subgo()">点我</a>
    与
    <ahref="javascript:void(0)" onclick="subgo()">点我</a>区别。
    <a href="javascript:void(0)"onclick="javascript:history.back();">
    返回</a>

    href=”#”,包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢甚至崩溃。而javascript:void(0) 仅仅表示一个死链接,没有任何信息。所以调用脚本的时候最好用void(0)

    href="#"与javascript:void(0)的区别

    href="#"方法其实也是空连接的意思,但是点击之后会自动跳转到页面的最上面,因为用了这个方法就相当于点击了一个锚记,但是这个锚记又没写ID,所以就默认跳转到页面顶部。从上面的例子也可以看出,当要执行某些处理,但是不整体刷新页面的情况下,可以使用void(0),但是在需要对页面进行refresh的情况下,那就要仔细了。

    其实我们可以这样用,这句话会进行一次submit操作。那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),所以在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新。

    说白了,href="#"这种形式会整体刷新页面,而href="javascript:void(0)" 则不会。所以如果是空连接的话,还是推荐javascript:void(0)。

     

     

    href = "#"当页面有滚动条时,点击后会返回到页面顶端的解决办法

    目前有如下几种解决办法: 

     

    1、点击链接后不做任何事情

    <a href="javascript:void(0);" >test</a> 
    <a href="javascript:;" >test</a> 
    <a href="####" >test</a> //使用2个到4个#,见的大多是"####",也有使用"#all"等其他的

    2、点击链接后,响应用户自定义的点击事件

    <a href="javascript:void(0)" onclick="doSomething()">test</a> 
    <a href="#" onclick="doSomething();return false;">
    什么问题都解决了,包括浏览器不兼容问题</a> //或者直接使用href="" 
    <a href="#" onclick="alert();event.returnValue=false;">test</a> 

    使用javascript:void(0)会引起什么问题?

    链接(href)直接使用javascript:void(0)在IE中可能会引起一些问题,比如:造成gif动画停止播放等,所以,最安全的办法还是使用“####”。为防止点击链接后跳转到页首,onclick事件return false即可。 如果仅仅是想鼠标移过,变成手形,则可以使用。

     

    我们可以使用void操作符指定超级链接,如javascript:void(document.form.submit())。表达式会被计算但是不会在当前文档处装入任何内容,void(0)计算为0,但在JavaScript上没有任何效果,也就是说的效果同的效果是一样的。

     

    既然容易引起问题,为何新浪微博,淘宝等大站的首页JS操作的href都是javascript:void(0);呢?

     

    新浪微博

    淘宝网首页

    有技术朋友表示在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/void看到了这个:

    <a href=”void(0);” rel=”nofollow”>
    Click here to do nothing
    </a>
    <a href=”void(document.body.style.backgroundColor=’green’);” rel=”nofollow”>
    Click here for green background</a> 

    有可能是 javascript:void(0); 既保证了返回值是undefined,又保证如果连接点击需要处理一些代码,随时将0替换掉就可以。

     

    href上加js是为了防止连接跳转,以前用#但是在部分浏览器下回跳转到页面顶部。这样就不好了,于是有人想到了添加οnclick=“return false”但是这样问题又来了,这样做会阻止绑定的时间,比如我们用jquery。于是就有了用href=”javascript:void(0);”的写法,这种做法开始确实是由一些写c的人,因为编写习惯而写的。后来有人讲void函数去掉了。就有了比较简洁的写法,其实在a在没有连接的时候完全可以去掉href属性或改用其他元素,只要加个指向时的鼠标样式就可以了。根据个人习惯而定。

    解决IE下使用javascript:void(0)方法会跳转的方法

    一般情况下,在IE下的A标签使用onclick的方法,在href属性下都加上javascript:void(0)或者javascript:;

     

    原代码如下:

    <a href="javascript:void(0)" title="关闭" onclick="delbook();">关闭</a>

    或者:

    <a href="javascript:;" title="关闭" onclick="delbook();">关闭</a>

    以上两种方法都可能会出现跳转。

    但是你会发现:在执行完clidk事件后会执行javascript:void(0),或者javascript:;

    解决办法:

    <a href="javascript:void(0)" title="关闭" onclick="delbook();return false;">关闭</a>

    或者

    <a href="javascript:void(0)" target="_self" title="关闭" onclick="delbook();">关闭</a>

    使用return false;可以阻止javascript:void(0)去执行。

     

    使用target="_self"可以阻止会跳转到其他页面,因其是空函数,则不会发生页面刷新。

     

     

    当然,在使用target="_self"的情况下,你可以直接这样写。

     

    <a href="javascript:delbook()" target="_self" title="关闭">关闭</a>


    只要是页面中有刷新或者跳转动作就要用上面的解决方法。

    JS的几种跳转方式:
    1.

    window.open(”url“) 

    2.用自定义函数

    <script> 
    function openWin(tag,obj) 
    { 
    obj.target="_blank"; 
    obj.href = "Web/Substation/Substation.aspx?stationno="+tag; 
    obj.click(); 
    } 
    </script> 
    <a href="javascript:void(0)"onclick="openWin(3,this)">点我</a>

    3.

    window.location.href='';

     

    展开全文
  • 一文搞定Voidvoid

    千次阅读 2019-12-02 15:32:20
    1.Java中 java.lang.Voidvoid 有什么作用和区别 1.void关键字表示函数没有分会结构,是 java中的一个关键字。java.lang.Void是一种类型,eg:给Void引入赋值null的代码为:Void foo=null; 。通过Void类的源码可以...

    1.Java中 java.lang.Void和void 有什么作用和区别

    1.void关键字表示函数没有分会结构,是 java中的一个关键字。java.lang.Void是一种类型,eg:给Void引入赋值null的代码为:Void foo=null; 。通过Void类的源码可以看到,Void类型不可以继承和实例化。
    2. Void的是void的引用类型。
    3. void方法中不能有返回值,Void的方法中必须存在返回值。
    4. void不是数据类型,只是的返回值类型,即不能用于泛型中,而Void为void的的引用类型,即可以作为泛型中的返回类型使用。

    展开全文
  • void类型及void指针

    千次阅读 2016-04-21 18:18:51
    void类型及void指针 基于前面的一篇博客模拟实现 memcpy 和 memmove 时用到的 void* 指针展开关于 voidvoid* 指针的概述; 1>void 类型  1.void 相信大家不会陌生,经常定义无返回值的函数是用 void 定义,...
  • 实例: #include <stdio.h> #include <stdlib.h>...void print(void * node) { printf("%d\n", *(int *)node); //加星号报错,不加不报错,但是结果不对。 //必须要转换成相应类型才能对其...
  • c语言中voidvoid*类型

    千次阅读 2019-04-24 13:23:30
    1、void的作用  c语言中,void为“不确定类型”,不可以用void来声明变量。如:void a = 10;如果出现这样语句编译器会报错:variable or field ‘a’ declared void。  在C语言中void 常常用于:对函数返回类型...
  • void是什么?

    千次阅读 多人点赞 2021-01-14 00:44:23
    许多初学者对C/C++语言中的voidvoid指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并 详述voidvoid指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型...
  • public void与public static void区别

    千次阅读 多人点赞 2019-02-26 12:10:30
    public void定义的是普通的方法,而public static void 定义的是静态的方法。 普通的方法需要new对象去调用,而静态的方法可以直接用类名去调用。
  • Java 方法中加void和不加void的 区别

    万次阅读 2018-11-30 11:44:27
    只要记住void即无返回值就OK了,如果不用void,那么这个地方一定是被一个其它的类型所替代,比如下面用的是String,当然也可能是int或者Boolean等等,那么此时我们下面就要有一个return返回值。 你看main方法不也是...
  • C语言中的voidvoid*的定义及用法

    万次阅读 多人点赞 2018-08-11 09:54:46
    void void最常见的用法,就是在函数中限定函数的参数和返回值的 void draw(void); 表明函数draw没有参数也没有返回值,void在别的的地方的应用我也没见过; 实际上,如果把void 和int,char,double等类型放到...
  • void 指针 void* 到底什么意思?

    千次阅读 多人点赞 2018-04-16 18:45:25
    最近在看线程池的实现,pthread的函数里面大量出现了 诸如 void *arg等无类型指针,经过多方查阅资料,谈谈自己的理解。void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。...
  • void类型和void* 的用法

    千次阅读 2018-01-27 19:36:29
    C语言中的void 和 void * 总结 1、void的作用  c语言中,void为“不确定类型”,不可以用void来声明变量。如:void a = 10;如果出现这样语句编译器会报错:variable or field ‘a’ declared void。  ...
  • 今天看信号的时候遇到一个很奇怪的函数原型 void ( signal(int sig, void ( handler)(int))) (int);...返回类型为一个指向 void (int)类型函数的指针对于void ( *p ) (void) 和 void ( *p () ) (void) void ( *p
  • Java Void

    千次阅读 2019-12-15 01:12:40
    package java.lang;... * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @author unascr...
  • voidvoid * 的 用法

    千次阅读 2013-12-12 08:27:02
    本文将对void关键字的深刻含义进行解说,并详述voidvoid指针类型的使用方法与技巧。 2.void的含义  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。  void几乎只有...
  • Java中void方法深入讲解

    万次阅读 多人点赞 2018-05-03 15:35:24
    void是java中的关键字,它代表的意思是什么也不返回,我们在开发过程中经常会用到,如一个方法不需要返回值时可以使用void关键字,在main方法中也是void关键字。 public static void getName() { String name =...
  • C/C++中的 voidvoid*

    千次阅读 2019-01-16 23:43:50
    写在前面: 开门见山,大家看下面这个例子: unsigned char err; unsigned char f; unsigned char a(unsigned char i, void *j){ if(j==(void*)0) return 0;...void * 就是无类型指针类型,j仅仅...
  • 【漫谈】 Java 中的 Voidvoid

    万次阅读 2018-10-30 17:55:43
    Java 中,大家对 void 应该是相当熟悉了。它表示“空”,所有无返回值的方法都使用它表示返回类型。 public static void main(String[] args) { // ... } void 是一种基本数据类型。 而 Voidvoid 封装...
  • 为什么是int main(void),而不是void main(void)?

    千次阅读 多人点赞 2018-04-15 23:11:55
    C/C++ 小误区:void main() 这是基于我们学校老师一直使用void main(),而发的感慨,大一学习C语言时,我就在想,老师上课演示的为什么一直用void main(),而不是int main()呢?不为了偷懒?还是习惯性的语句...
  • 关于void类型指针-----void*、void**

    万次阅读 多人点赞 2018-10-11 11:48:20
    指针有两个属性:指向变量/对象的地址和长度  但是指针只存储地址,长度则取决于指针的类型  编译器根据指针的类型从指针指向的...1.void指针是一种特别的指针   void *vp   //说它特别是因为它没有类型   ...
  • C/C++ voidvoid指针

    千次阅读 2016-01-13 15:18:05
    本文将对void关键字的深刻含义进行解说,并详述voidvoid指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释...
  • void指针(void *的用法)

    千次阅读 2019-01-21 13:30:12
    指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 ...1.void指针是一种特别的指针 void *vp //说它特别是因为它没有类型 ...
  • voidvoid*的用法总结和注意点

    千次阅读 2016-12-14 17:19:26
    voidvoid*的用法总结和注意点
  • voidvoid指针含义的深刻解析

    千次阅读 2015-03-17 12:33:51
    void的含义 void即“无类型”,void *则为“无类型指针”,可以指向任何数据类型。 void指针使用规范 ①void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如: int * pint; void *...
  • Java void关键字

    万次阅读 多人点赞 2016-05-29 12:51:24
    概述void是Java中的关键字,日常开发中经常遇到,Java main方法的定义中就有void的身影,如下:public static void main(String[] args) {}学过Java的人都知道void的意思是空,如果你去问老手,老手会告诉你说:...
  • 在java中public void与public static void区别

    万次阅读 多人点赞 2019-03-04 11:27:03
    public static void static 方法可以被main方法直接调用,而非static方法不可以。 因为static方法是属于类的,是类方法。可以通过类名,方法名直接调用。 而非static方法必须等对象被new出来以后才能使用,因而不能...
  • 为什么 main 方法是 public static void

    千次阅读 多人点赞 2020-04-19 15:27:59
    main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public、static、void的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么...
  • 使用Eclipse编译STM32中的sys.c文件编译报出这个错误时: __asm void WFI_SET(void) { WFI; } 我的是上面那种写法,修改成下面的 void WFI_SET(void) { __ASM volatile("WFI"); } ...
  • void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型; 2. 如果函数无参数,那么应声明其参数为void; 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ; 4. void不能代表一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,075,407
精华内容 4,430,163
关键字:

void