C++实习笔记(1)

1.如果要在类内使用静态成员变量(static)时,需要在 类内声明,类外定义
C/C++ code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class  FD_Gaze_Obj :  public  FD_Gaze_API
{
public :
     FD_Gaze_Obj()
     {
         public :
         ...
         static  char * FDinfo;   //静态变量相当于全局变量,唯一且直到程序结束才销毁
         static  char  FDinfo_ver[1024];
     }
}
...
//在类外定义(初始化)
char * FD_Gaze_Obj::FDinfo = nullptr;
char  FD_Gaze_Obj::FDinfo_ver[1024] = {0};
 
//静态变量即使函数执行结束也不会销毁
     char * GetFDGVersion()
     {
         sprintf (FD_Gaze_Obj::FDinfo_ver,  "%d-%s" , (DATA_VER * 1000), FD_Gaze_Obj::FDinfo);
         return  FD_Gaze_Obj::FDinfo_ver;
     }
 
     char * GetAPIVersion()
     {
         return  GetFDGVersion();
     }
 
//调用GetAPIVersion函数时如果不使用静态变量(全局变量),那么当GetAPIVersion函数执行时候,GetFDGVersion已经执行
//过了,其中的局部变量FDinfo则会被销毁,就会导致char *gazeversion = GetAPIVersion();时gazeversion得到一个随机值。
GetSdkVersion( char  version[1024])
{
     memset (version,0, sizeof (version));
     char  ver[1024] = {0};
     char  *gazeversion = GetAPIVersion();
     sprintf (ver,  "123456789-%d-%s" , 100001, gazeversion);
     memcpy (version, ver, 1024);
     return  0;
}
//对于char* 返回类型的函数,可以用char* 定义的变量来接收其返回值;对于char*的函数,返回值可以是char[],同样可以用ch
//ar*的值来接收。


2.Sprintf函数的使用
Sprintf函数主要用于将各个类型的数据拼接成一串字符串并写入制定内存中。
C/C++ code
?
1
2
3
4
5
6
7
sprintf char * buffer, const  char * format,[argument]...)
//其中buffer是char型指针,指向要写入的内存。
//format是需要"组装"的字符串
//如上述例子:
sprintf (ver,  "123456789-%d-%s" , 100001, gazeversion);
//指的是将几个参数组装成“123456789-100001-%s”类型的字符串,并将其地址赋给ver。
//需要注意的是,和printf一样,int ---%d,float---%f,char[]/char* --- %s


3.对于别人只提供dll时,在SDK中只需要调用其提供的API接口即可,但要注意在不同的解决方案配置中右键—>属性—>链接器—>常规—>附加库目录中的目录则为dll库的目录,如果修改过则需要手动复制新的dll库目录到bin下。

4.注意如果解决方案下有很多项目的时候,注意生成dll时候顺序不同会产生不一样的结构,可以设置关联关系让其关联生成(一旦某项目生成dll,则其他项目跟着生成)。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值