当前位置: 首页 > news >正文

网站建设安全性指标/个人网站设计模板

网站建设安全性指标,个人网站设计模板,黄网站红烧豆腐怎么做,做网站抄代码这篇文章主要为大家介绍了C语言如何写类的实现教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪 引言 以前用CBUILDER 写类非常爽. 类把涉及数据相关的操作打包成一个类. 然后后期开发工程…

这篇文章主要为大家介绍了C语言如何写类的实现教程示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

以前用C++BUILDER  写类非常爽.

类把涉及数据相关的操作打包成一个类.

然后后期开发工程师可以继承啊, 这样提升了开发效率.

不过C语言注重的是执行效率, 类的继承会导致内存的浪费,可能导致性能不佳!

最近继续完善我那个小C,大家还记得小C妹子吗?

操空MYSQL的C程序

对她 就是操空MYSQL的C程序, 我叫她去干删除日志表的工作!

不过最近要对她增加适应工作环境,有的环境需要CA证书,比如说RDS,亚马逊,以及MYSQL自己的证书.

所以对原本的参数需要增加3项. 另外的就是原本参数使用的是数组,无法动态根据实际参数大小来存储.有时候浪费很多内存,有的时候数组不会存储结尾字符'\0' 比如说参数 char is_ssl[3]; 如何是no则没有问题,YES倒是有问题.丢失了结尾符号.在后面比较的时候就无法判断了.

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

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <malloc.h>

#define KEYSIZE 15

typedef struct 

{

 union {

  struct {    

            char* ip;

            char* user;

            char* port;

            char* passwd;

            char* schema;

            char* table_name;

            char* limit_rows;

            char* total_sql;

            char* del_sql;

            char* logfile;

            char* is_ssl;

            char* client_cert;

            char* client_key;

            char* ca_cert;

            char* is_debug; 

            }  ;

   char *pArr[KEYSIZE];

 };             

} Parameter;

typedef struct

{

  Parameter param;

  void (*init) (Parameter* param );

  void (*free) (Parameter* param );

}TParameter;

//---------------------------------------------------------------------------------------------------------------------

void init_Paramter(Parameter* param )

{

  for(int i=0;i<KEYSIZE; i++)

 {

    param->pArr[i]=NULL;

 }

}   

//---------------------------------------------------------------------------------------------------------------------

void free_Parameter(Parameter* param )

{

 for (int i=0;i<KEYSIZE;i++)

 {

    free (param->pArr[i]);

    param->pArr[i]=NULL;

 }

}

int main()

{

  TParameter ParamObj;

  ParamObj.init=init_Paramter;

  ParamObj.free=free_Parameter; 

  ParamObj.init(&ParamObj.param);

  ParamObj.param.ip= calloc(sizeof(char),strlen("192.168.0.155")+1);

  strcpy(ParamObj.param.ip,"192.168.0.155");

   

  printf("ParamObj.IP:%s\n",ParamObj.param.ip);

  printf("ParamObj.IP Length:%d\n",strlen(ParamObj.param.ip));

  ParamObj.free(&ParamObj.param);

    return 0;

}

定义个 联合体+结构体 类型 Parameter

该类型 里面有个联合体 字符指针数组 ; 外加一个结构体参数;

数组的作用就是遍历结构体里面的指针, 从而可以初始化和释放内存操作

然后我们再套个结构体类型. 把 Parameter 设置成了数据成员,

另外我们再定义两个函数指针成员.

这样我们的类就定义完成了. 

接着我们在主函数里面 定义类的 参数对象

 TParameter ParamObj;

这里是C 不像C++ 我们需要手工关联 函数指针成员. 说白点就是给它赋值

关联上具体函数地址.

ParamObj.init=init_Paramter; 
 ParamObj.free=free_Parameter; 

接着我们通过函数来初始化我们的参数数据

ParamObj.init(&ParamObj.param);

然后就是我们正式的对数据成员动态分配堆内存

ParamObj.param.ip= calloc(sizeof(char),strlen("192.168.0.155")+1);  

strcpy(ParamObj.param.ip,"192.168.0.155");

接下来就是 对数据成员的使用

printf("ParamObj.IP:%s\n",ParamObj.param.ip);  
printf("ParamObj.IP Length:%d\n",strlen(ParamObj.param.ip));

最后我们释放数据成员的内存

ParamObj.free(&ParamObj.param);

我们一般都定义为址传给函数; 因为这样非常快; 传内存地址 也就是4-8字节

而传值 就大于8字节;

strlen(ParamObj.param.ip) 就13个字节!

以上就是C语言如何写类实现教程示例的详细内容,更多关于C语言如何写类的资料请关注我,后续还会有更新,也希望大家多多指点

http://www.jmfq.cn/news/5287123.html

相关文章:

  • 三合一网站是什么/友情链接交换的意义是什么
  • app外包什么意思/商丘seo
  • 做网站用虚拟主机好吗/网络公司网站模板
  • 怎么做销售网站/搜索引擎优化的方法包括
  • 织梦网站数据库备份文件夹/短链接在线生成官网
  • 做网站推广员/百度站长电脑版
  • 建设地情网站的作用/如何创建一个网址
  • intitle 郑州网站建设/网上营销是做什么的
  • 网站开发外包合同/天津seo结算
  • 网站开发2008/太原seo外包公司
  • 二级网站内容建设要求吗/360优化大师最新版
  • 网站开发 q3687474/微信公众号seo
  • 在手机里面开网店怎么开/关键词优化外包
  • 帝国cms企业&行业协会网站模版/搜狗网站排名软件
  • 网站建设电销/自媒体营销推广方案
  • 连云港做网站最好/国内最好用的免费建站平台
  • 韩国风格网站模板/外贸独立站推广
  • 网站开发推广方案策划书/企业网站推广建议
  • saas 平台架构做网站/重庆seo推广外包
  • 百度公司网站排名怎么做/百度词条搜索排行
  • 免费cms建站系统有哪些/商业软文代写
  • 南充市建设局网站/流量平台有哪些
  • 2免费做网站/郑州网站推广公司哪家好
  • 做网站使用什么语言写/百度指数查询工具app
  • 辽宁平台网站建设平台/中小企业网站
  • c 做的web网站怎么发布/速推网
  • 国外做动运服装的网站/百度投放广告流程
  • .net 网站制作/百度推广客户端官方下载
  • 视频网站备案怎么做/宣传软文怎么写
  • 做网站用虚拟主机好吗/竞价托管哪家公司好