本文主要是介绍努力学习C++的一天(五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. stdafx.h和stdafx.cpp是用来干嘛的?
StdAfx.h, StdAfx.cpp这些文件用于生成名为.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
2. 结构体作为形参传递的方法:(推荐第三种)
https://www.cnblogs.com/wyuzl/p/6248952.html
//结构体定义
struct calib_para
{float robot_px1, robot_px2,record_1,record_2; float robot_px3, robot_px4, record_3, record_4;
};
//函数声明
float* compute_angle(calib_para &);
//定义
float* compute_angle(calib_para &calibparameter)
{float angle[2];angle[0] = atan2f(calibparameter.record_2 - calibparameter.record_1, calibparameter.robot_px2 - calibparameter.robot_px1);// *180.0 / PI;angle[1] = atan2f((calibparameter.record_3 - calibparameter.record_4), abs(calibparameter.robot_px3 - calibparameter.robot_px4));// *180.0 / PI;return angle;
}
//调用
int main()
{//结构体实例calib_para calibparameter;calibparameter.robot_px1 = -310;calibparameter.record_1 = 4.89;calibparameter.robot_px2 = -480;calibparameter.record_2 = 5;calibparameter.robot_px3 = -260;calibparameter.record_3 = 3;calibparameter.robot_px4 = -460;calibparameter.record_4 = 3.87;//调用函数float* calib_angle;calib_angle = compute_angle(calibparameter);return 0;
}
3. 函数返回数组的方法:
传递地址法
int fun*()
{int *a[3]={0,1,2};return a;
}int main()
{int *test;test=fun();cout<<test[0]<<endl;
}
4. 函数返回二维数组方法:
//声明
float** compute_rotated_end(float theta1, float theta2);
//定义
float** compute_rotated_end(float theta1, float theta2)
{//为二维数组分配4*4的内存float** rotated_end = new float* [4]; for (int i = 0; i < 4; ++i) {rotated_end[i] = new float[4];}//给二维数组赋值for (size_t i = 0; i < 4; i++){for (size_t j = 0; j < 4; j++){rotated_end[i][j] = 0;}}return rotated_end;
}
//声明
void compute_rotatedbase_noap(float rotatedbase_noap[4][4]);
//定义
void compute_rotatedbase_noap(float rotatedbase_noap[4][4])
{ for (register int i = 0; i < 4; i++){for (register int j = 0; j < 4; j++){ rotatedbase_noap[i][j] = 0;}}
}
这篇关于努力学习C++的一天(五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!