首页 > 编程知识 正文

javavoid返回数值类型(java指针的用法,解释使用void指针之间的区别)

时间:2023-05-06 10:07:29 阅读:123238 作者:4766

我的代码需要将数组传递给一个void指针。 无法修改此结构(void * ) )。 以下两个版本的代码生成相同的输出,但后者有两个警告。 我的问题是两种方法哪个更受欢迎。 有强制删除警告的方法吗?

此版本没有警告,可以获得预期的输出:

#包含

void测试(void * var _ arr,char var_1);

类型定义结构{

char chip;

Void *缓冲器;

}test_struct;

int main () )

{

int test _ array [3]={ 3,7,5 };

char var_1=0x20;

printf(Hello,World! n ';

test(test_Array,var_1;

返回0;

}

void测试(void * var _ arr,char var_1) )。

{

int i;

test_struct var_ts;

var_ts.chip=var_1;

var_ts.buffer=var_arr;

for(I=0; i3; I )

printf ((nthedatavaluesare : % x (n (r ),* ) ) (var_ts.buffer i ) );

}

你好,世界!

数据值为3

数据值为7

数据值为5

以下版本有两个警告,但编译以生成预期的输出。

警告:在source_file.c :函数' main '中,为source_file.c:17:10 :警告:不兼容的指针类型test(&; 从test_array,var_1)传递' test ' ^ source _ file.c:3:6 :注意:预期为“int”,但参数类型为“int ()”[3] '

#包含

voidtest(int*var_arr,char var_1);

类型定义结构{

char chip;

Void *缓冲器;

}test_struct;

int main () )

{

int test _ array [3]={ 3,7,5 };

char var_1=0x20;

printf(Hello,World! n ';

test(test_Array,var_1;

返回0;

}

voidtest(int*var_arr,char var_1) ) )。

{

int i;

test_struct var_ts;

var_ts.chip=var_1;

var_ts.buffer=(void * ) var_arr;

for(I=0; i3; I )

printf (nthedatavaluesare : % x (n (r ),* ) ) (var_ts.buffer i );

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。