标签: void

将void*作为函数调用而不声明函数指针

我已经搜索过但找不到任何结果(我的术语可能已关闭)所以请原谅我,如果以前曾经问过这个问题.

我想知道是否有一种简单的方法可以void*在不首先声明函数指针然后为函数指针分配地址的情况下调用C中的函数.

即.假设要调用的函数是typevoid(void)

void *ptr;
ptr = <some address>;
((void*())ptr)(); /* call ptr as function here */
Run Code Online (Sandbox Code Playgroud)

用上面的代码,我得到错误C2066:在VC2008中强制转换为函数类型是非法

如果可能,具有返回类型和多个参数的函数的语法有何不同?

c pointers function void

11
推荐指数
3
解决办法
1万
查看次数

从C++中的Void函数返回

请考虑以下代码段:

void Foo()
{
  // ...
}

void Bar()
{
  return Foo();
}
Run Code Online (Sandbox Code Playgroud)

在C++中使用上述内容的正当理由是什么,而不是更常见的方法:

void Foo()
{
  // ...
}

void Bar()
{
  Foo();

  // no more expressions -- i.e., implicit return here
}
Run Code Online (Sandbox Code Playgroud)

c++ return void

11
推荐指数
3
解决办法
3882
查看次数

"(void)new"在C++中意味着什么?

我一直在看一个Qt 教程,它使用了我以前没见过的结构:

 (void) new QShortcut(Qt::Key_Enter, this, SLOT(fire()));
 (void) new QShortcut(Qt::Key_Return, this, SLOT(fire()));
 (void) new QShortcut(Qt::CTRL + Qt::Key_Q, this, SLOT(close()));
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这个没有(void)它仍然编译和工作,所以这是什么目的(void)

c++ void

10
推荐指数
2
解决办法
1946
查看次数

为什么bsearch会返回void*?

void * bsearch ( const void * key,
                 const void * base,
                 size_t num,
                 size_t size,
                 int ( * comparator ) ( const void *, const void * ) );
Run Code Online (Sandbox Code Playgroud)

如果我传入一个const void * base,不应该bsearch也返回一个const void *结果?

c pointers const void bsearch

10
推荐指数
1
解决办法
447
查看次数

为什么Perl抱怨"在void上下文中无用的常量",但有时只是?

这是我的Perl脚本及其输出:

use strict;
use warnings;

(undef, 1); # no output
(0, 1);     # no output
(1, 1);     # no output
(2, 1);     # "Useless use of a constant in void context at C:\...\void.pl line 7"
(3, 1);     # "Useless use of a constant in void context at C:\...\void.pl line 8"
("", 1);    # "Useless use of a constant in void context at C:\...\void.pl line 9"
("0", 1);   # "Useless use of a constant in void context at C:\...\void.pl line 10" …
Run Code Online (Sandbox Code Playgroud)

perl constants void

10
推荐指数
1
解决办法
3963
查看次数

警告:return在没有强制转换的情况下从整数生成指针但是根据需要返回整数

我试图找出从C中的void*函数调用返回一个整数的正确方法.

即......

#include <stdio.h>

void *myfunction() {
 int x = 5;
 return x;
}

int main() {
  printf("%d\n", myfunction());
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我一直在:

警告:返回从整数中生成指针而不进行强制转换

我需要做一个演员来完成这项工作吗?它似乎没有问题地返回x,真正的myfunction返回指向结构和字符串的指针,它们都按预期工作.

c integer casting function void

10
推荐指数
1
解决办法
5万
查看次数

为什么Javascript中的void需要参数?

根据我的理解,voidJavascript中的关键字是某种函数,它接受一个参数并始终返回undefined值.出于某种原因,你需要传递一个参数; 没有一个它就行不通.

它有什么理由需要这个论点吗?

有什么意义?为什么没有争论就行不通.我见过的唯一用途就是产生一个undefined结果.它还有其他用途吗?

如果没有那么似乎表达式的要求将是毫无意义的.

javascript void

10
推荐指数
1
解决办法
1798
查看次数

别名模板,部分特化和无效参数类型void

请考虑以下代码:

template<typename F>
struct S;

template<typename Ret, typename... Args>
struct S<Ret(Args...)> { };

template<typename... Args>
using Alias = S<void(Args...)>;

int main() {
    S<void(int)> s;
    Alias<int> alias;
}
Run Code Online (Sandbox Code Playgroud)

它正常工作,如预期的那样,涉及的线S和涉及Alias引擎盖的相同类型S<void(int)>.

现在,请考虑以下更改:

int main() {
    S<void(void)> s;  // this line compiles
    Alias<void> alias;  // this line does not
}
Run Code Online (Sandbox Code Playgroud)

我期望它编译,原因与上面提到的类似.
不言而喻,由于涉及到行,它不会编译Alias,而是我收到错误:

用'Alias = S [with Args = {void}]代替'模板'

[...]

错误:参数类型无效'void'

问题很简单:我错过了什么?

c++ templates void c++11 template-aliases

10
推荐指数
1
解决办法
303
查看次数

class的目的= C++中的void?

class = void以下代码片段的目的是什么?

template< class, class = void >
struct has_type_member : false_type { };
template< class T >
struct has_type_member<T, void_t<typename T::type>> : true_type { };
Run Code Online (Sandbox Code Playgroud)

c++ templates void c++11 c++14

10
推荐指数
1
解决办法
956
查看次数

pyspark.sql.utils.AnalysisException:Parquet 数据源不支持 void 数据类型

我正在尝试在 PySpark 的数据框中添加一列df1

我尝试过的代码:

import pyspark.sql.functions as F
df1 = df1.withColumn("empty_column", F.lit(None))
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

pyspark.sql.utils.AnalysisException:Parquet 数据源不支持 void 数据类型。

谁能帮我这个?

types void apache-spark parquet pyspark

10
推荐指数
1
解决办法
1万
查看次数