【求助帖】void指针函数可以return指针吗
各位大侠好:
小弟最近在阅读公司设备的里面的程序,公司设备程序是用Labwindows/CVI开发的,其中有一段代码,小弟有点疑惑,还请各位大侠帮忙点拨。谢谢!
1)void指针空函数可以return指针?
2)形参pnNum为int型指针,在语句 *pnNum = atoi(psToken)中*pnNum是否指的是取指针内容的意思?
3)为什么要以&sys.nRShunt,int *pnNum指针和地址的方式传递值?是否可以直接sys.nRShunt的int型直接传递?
=================================================================
主程序中的语句:
sys.pfRShunt = string_to_array(sData, FLOAT, &sys.nRShunt);
(sys.pfRshunt是在头文件中声明的为float浮点指针,sData是字符数组,sys.nRShunt是头文件中声明的int值)
string_to_array函数定义如下:
void *string_to_array(char *sStr, int type, int *pnNum)
{
int i;
char *psToken;
int *iArray;
long *lArray;
float *fArray;
double *dArray;
psToken = strtok(sStr, ",");
if ( psToken ) *pnNum = atoi(psToken);
if ( *pnNum > 0 )
{
if ( type == INT ) iArray = calloc(*pnNum, sizeof(int));
if ( type == LONG ) lArray = calloc(*pnNum, sizeof(long));
if ( type == FLOAT ) fArray = calloc(*pnNum, sizeof(float));
if ( type == DOUBLE ) dArray = calloc(*pnNum, sizeof(double));
i = 0;
while ( (psToken = strtok(NULL, ",")) != NULL )
{
if ( type == INT ) iArray[i++] = atoi(psToken);
if ( type == LONG ) lArray[i++] = atol(psToken);
if ( type == FLOAT ) fArray[i++] = atof(psToken);
if ( type == DOUBLE ) dArray[i++] = atof(psToken);
}
if ( type == INT ) return iArray;
if ( type == LONG ) return lArray;
if ( type == FLOAT ) return fArray;
if ( type == DOUBLE ) return dArray;
}
return NULL;
}
小弟最近在阅读公司设备的里面的程序,公司设备程序是用Labwindows/CVI开发的,其中有一段代码,小弟有点疑惑,还请各位大侠帮忙点拨。谢谢!
1)void指针空函数可以return指针?
2)形参pnNum为int型指针,在语句 *pnNum = atoi(psToken)中*pnNum是否指的是取指针内容的意思?
3)为什么要以&sys.nRShunt,int *pnNum指针和地址的方式传递值?是否可以直接sys.nRShunt的int型直接传递?
=================================================================
主程序中的语句:
sys.pfRShunt = string_to_array(sData, FLOAT, &sys.nRShunt);
(sys.pfRshunt是在头文件中声明的为float浮点指针,sData是字符数组,sys.nRShunt是头文件中声明的int值)
string_to_array函数定义如下:
void *string_to_array(char *sStr, int type, int *pnNum)
{
int i;
char *psToken;
int *iArray;
long *lArray;
float *fArray;
double *dArray;
psToken = strtok(sStr, ",");
if ( psToken ) *pnNum = atoi(psToken);
if ( *pnNum > 0 )
{
if ( type == INT ) iArray = calloc(*pnNum, sizeof(int));
if ( type == LONG ) lArray = calloc(*pnNum, sizeof(long));
if ( type == FLOAT ) fArray = calloc(*pnNum, sizeof(float));
if ( type == DOUBLE ) dArray = calloc(*pnNum, sizeof(double));
i = 0;
while ( (psToken = strtok(NULL, ",")) != NULL )
{
if ( type == INT ) iArray[i++] = atoi(psToken);
if ( type == LONG ) lArray[i++] = atol(psToken);
if ( type == FLOAT ) fArray[i++] = atof(psToken);
if ( type == DOUBLE ) dArray[i++] = atof(psToken);
}
if ( type == INT ) return iArray;
if ( type == LONG ) return lArray;
if ( type == FLOAT ) return fArray;
if ( type == DOUBLE ) return dArray;
}
return NULL;
}
...全文
相关推荐
void及void指针含义的深刻解析
void及void指针含义的深刻解析,C/c++中void的使用方法。
深入理解void以及void指针的含义
本篇文章对小编void以及void指针的含义进行了详细的分析和介绍。需要的朋友参考下
void指针小结
许多初学者对C/C++诧言中的void及void指针类型丌甚理解,因此在使用上出现了一些错诨。本文将对void关键字的深刻含义迚行解说,并详述void及void指针类型的使用方法不技巧。
C/C++语言void及void指针深层探索
小小的void蕴藏着很丰富的设计哲学,作为一名程序设计人员,对问题进行深一个层次的思考必然使我们受益匪浅。
彻底了解指针数组,数组指针以及函数指针
C语言 数组 指针 C语言深度解析!彻底了解指针数组,数组指针以及函数指针,很不错的文档,不敢独享,大家一起学习


