复习C语言随笔 七

编程入门 行业动态 更新时间:2024-10-24 10:21:39

复习C语言<a href=https://www.elefans.com/category/jswz/34/1769507.html style=随笔 七"/>

复习C语言随笔 七

复习C语言随笔 七

函数

  • 1 isdigit()

检查字符是否为数字字符。若是,返回非0;否,返回0。头文件: stdlio.h 。

  • 2 memset(void *buffer, int ch, size_t count )

函数拷贝ch 到buffer 从头开始的count 个字符里, 并返回buffer指针。 memset() 可以应用在将一段内存初始化为某个值。头文件: string.h 。例如:

 memset( the_array, '\0', sizeof(the_array);

特殊用法: 将整型数组初始化为0

#include<stdio.h>
#include<string.h>
int main(){int a[10], i;memset(a,0,40); for(i=0; i<sizeof(a)/sizeof(a[0]); i++) printf("%d ",a[i]);return 0;
}
  • 3 strlen()
    遇到ASCLL码0结束,或者说遇到’\0’ 。
    ‘0’ –48
    ‘\0’ –0
    NULL –0

  • 4 static 修饰变量
    修饰全局变量 改变链接属性
    修饰局部变量 改变生命周期
    修饰函数 改变链接属性

数组

#include<stdio.h>int main(){char arr1[] = "abc";char arrr2[] = {'d', 'e', 'f'};char *p1 = "xyz";     // xyz 放在只读数据区,分配内存, p1指向x char *p2 = "xyz";     // 没有分配内存 , p2指向x return 0;
}

一句话

c语言编译器在编译时会对变量进行重命名。当使用变量或函数时未定义或写错了变量名或函数名,会报错: 无法解析。。。。XXXXX ,此处的XXXXX是编译器处理之后的名字,而在源码中并没有出现XXXXX 。


源码的保护

在平时的学习过程中,一个程序的代码基本上都是放在一个.c文件中,比如下面的例子:

然而在开发时,这样做有一个十分明显的弊端: 泄露源码 ———这对于开发者而言造成的经济损失的难以估量的。 所以,就可以通过把源码中各种函数生成为静态库的方式进行源码保护。

第一步:对源码进行主函数与自定义函数的分离

以这里的函数 PrintAB() 为例: 先在头文件的文件夹下创建 PrintAB.h 文件,声明PrintAB()函数


然后在源文件里创建一个 PrintAB.c 文件用 #include”PrintAB.h”引用刚刚创建的头文件,并完成函数PrintAB() 的定义:


接着在源代码里写上对头文件 PrintAB 的引用,此时就完成了分离操作。编译并运行代码,完美!


第二步:创建静态库

首先新建一个空项目,为了辨识,项目名取为PrintAB。


然后将项目123(这里是用项目123演示的)里的printAB.c和PrintAB.h拷贝到项目PrintAB下:


在项目 PrintAB 中将 .h 文件移动到头文件文件夹中,然后找到该项目的属性页,在配置属性–>常规–>项目默认配置–>配置类型 一栏,选择静态库(.lib) ,应用,确认。


然后F7生成解决方案,可以看到生成了一个 PrintAB.lib 文件:


第三步:使用静态库

这个 .lib 文件打开之后是一堆乱码,对于人类而言是完全看不懂的,只有在代码中能使用它。 现在复制 PrintAB.lib 文件到项目123下并删除原有的PrintAB.c文件:


然后在项目123的test.c文件(也就是写有主函数的那个文件)里加上 #pragma comment(lib, “PrintAB.lib”) 以完成对lib文件的引用。此时编译并运行,运行成功!


可以看到,在项目123中已经没有了对函数PrintAB的定义,但是程序仍然跑起来了。在实际开发环境中,对外放出去的代码就是项目123中的代码,而属于自己的‘生产资料’则保存在自己本地。

更多推荐

复习C语言随笔 七

本文发布于:2024-02-06 08:28:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1747800.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:随笔   语言

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!