记录| C++中memset()函数用法;函数定义后面加const用法;

1、memset用法

C 库函数 void *memset(void *str, int c, size_t n) 用于将一段内存区域设置为指定的值。
简单理解,就是定义一组数组后,将数组的多少位设定为固定的内存位置,并赋值,一般用于固定参数的存储;
可以用于将内存块清零或设置为特定值。
例如:

int a[64];//定义一个长度64位的数组
memset(a, 1, 64 * sizeof(int));//初始化a,并开辟一块内存空间给到a,将一段内存区域设定为指定的值;
//1,为初值,64*sizeof(int),定义内存位置和长度

也可以如下使用方式(该方式摘录自菜鸟教程)
先声明50个字符,再赋值字符串
用memset将字符串的前7位修改$$$$$$$

#include <stdio.h>
#include <string.h>
 
int main ()
{
   char str[50];
 
   strcpy(str,"This is string.h library function");
   puts(str);
 
   memset(str,'$',7);
   puts(str);
   
   return(0);
}

又或者,使用宏定义好字符串长度,定义类时候在构造函数内对数据进行初始化,可对不同类型的参数进行内存空间的开辟和定义
注:代码示例内容为某多个同类检测项的检测结果管控参数

#define MANAGESIZE 64

class ManageParam 
{
public:
	ManageParam()
	 {																	///<  初始化参数
		memset(upper, 0, MANAGESIZE * sizeof(float));
		memset(lower, 0, MANAGESIZE * sizeof(float));
		memset(offset, 0, MANAGESIZE * sizeof(float));
		memset(value, 0, MANAGESIZE * sizeof(float));
		memset(flag, 1, MANAGESIZE * sizeof(bool));
		memset(check, 0, MANAGESIZE * sizeof(bool));
	}
	float upper[MANAGESIZE];///<  结果上限值
	float lower[MANAGESIZE];	///<  结果下限值
	float offset[MANAGESIZE];///<  结果偏移量
	float value[MANAGESIZE];///<  结果真实值
	bool flag[MANAGESIZE];///<  当前结果是否 OK
	bool checkMANAGESIZE];///<  当前项是否生成曲线数据

}

2、C++函数定义的括号后面加上const作用

void  add(float value,int index)const{}

如上述代码示例,一般函数参数后面加上const后,该类的成员变量若是在该函数内调用使用,则不能进行参数赋值和修改,只能作为判断参数使用,这样保证了程序结构的安全和严谨性;
eg:错误使用方式如下。age成员函数不能增加

int temp::getAge() const
{
    age+=10; // #Error...error C2166: l-value specifies const object #
    return age;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值