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

南宁自助模板建站搜索引擎优化营销

南宁自助模板建站,搜索引擎优化营销,电子商务网站特色,推广赚钱 每单5元声明与定义分离 声明:将声明单独封装成一个以.h为后缀名的头文件 定义:将定义的变量,函数,数组所在的源文件单独封装成一个.c文件。其实就是在源文件基础上将定义过的所有东西的声明分离出去就是了。 注意:1.声明的…

声明与定义分离

声明:将声明单独封装成一个以.h为后缀名的头文件

定义:将定义的变量,函数,数组所在的源文件单独封装成一个.c文件。其实就是在源文件基础上将定义过的所有东西的声明分离出去就是了。

注意:1.声明的.h文件名和.c结尾的源文件名要相同、

           2.一个源文件对应一个头文件

1.预编译

1.程序编译

1.预编译

        展开头文件

        定义宏

        选择性编译

        注意:

                展开头文件必须以#开头 

2.编译

3.汇编

4.链接      

2.include

作用:展开头文件

语法:

        #include<> 尖括号代表的头文件是在系统指定文件中找该库,具体在lib/或者在usr/lib文件中找

        #include""  "" 代表的是自己定义的库,会先在当前目录文件夹下找,如果找不到再在系统指定文件夹中找

注意:
1,include 经常用来包含头文件,可以包含 .c 文件,但是大家不要包含.c ,因为 include 包含的文
件会在预编译被展开,如果一个.c 被包含多次,展开多次,会导致函数重复定义。所以不要包含.c 文件
2,预处理只是对 include 等预处理操作进行处理并不会进行语法检查
这个阶段有语法错误也不会报错,第二个阶段即编译阶段才进行语法检查

3.宏(define)

1.定义不带参的宏

        define pi(宏名)  值

       注意:1.定义不带参的宏,值可以不写

                  2.不带参的宏定义不要后面加分号

                  3.只能在当前文件中使用

                  4.在宏定义后,取消定义前使用

例子:      

        #include <stdio.h>
        #define PI 3.14
        #define X
        int main(int argc, char const *argv[])
        {
        printf("PI=%f\n",PI);
        #undef PI //取消宏定义
        //printf("PI=%f\n",PI);
        return 0;
        }

2.定义带参的宏

        define 宏名(形参) a + b(体) ;

3.注意:

        1.结尾要加分号

        2.括号中可以加形参,后面运算表达式不能省

        3.形参没有数据类型

        4.不止在当前文件中使用,可以在别的文件中使用

4.带参和不带参的宏的区别:

        宏:在预编译时对其进行替换,如果一个文件中多次使用宏,那意味着要替换多次,此时就需占用内存,所以占据的内存多

                产生的预编译时期

                占内存多

                速度快
        
        函数:在程序运行时在代码区存储一份,每次调用该函数都需在代码区寻找,将其放入栈内存中(压栈),当函数执行完毕后,从栈中移除(弹栈)
                产生在运行时
                
                占内存少
5.#undef   宏名          //取消宏定义

6.总结

        宏就是在预编译时期对其进行替换

        不带参宏替换的是一个值

        带参宏替换的是一段代码   

4.选择性编译

作用:选择代码是否被编译

语法:

2.库

作用:

        也叫代码库,可以将一些目标文件放在一起合并方便使用

分类:

1.静态库

2.动态库

动态库与静态库的区别:

注意:

程序中引入的文件在动态库与静态库同时存在两份

静态编译程序引入静态库中的该文件

动态编译程序引入动态库中的该文件

编辑命令:

静态库:

        gcc  -static  源文件名  - o   生成的可执行文件名

动态库:
        gcc  源文件名  - o   生成的可执行文件名

静态库:

制作:

        gcc -c 源文件名.c -o 生成的二进制文件名.o

        ar rc lib静态库名称.a 生成的二进制文件名.o

        注意:静态库起名的时候必须以 lib 开头以 .a 结尾
使用:
        情况1: 使用静态库的文件与静态库在同一文件夹下
                命令:
                gcc 源文件名 静态库名称 -o 生成的可执行文件名
                
情况 2: 使用静态库的文件与静态库不在同一文件夹下                 
                注意:
                为了让静态库文件与其对应的头文件和使用静态库文件不在同一文件夹下
                所以创建includes与 libs 文件夹
                includes文件用于存储头文件
                libs文件夹存储静态库文件
                mkdir includes
                mkdir libs
                mv myfun.h includes/
                mv libmyfun.a libs/
                -L 引用的静态库所在的路径
                -l 静态库名, 不要 lib .a
                -I 头文件所在路径
                
                命令:
                        gcc 源文件名 -L 静态库所在的路径 -l 静态库名 -I 头文件所在路径 -o 生成的可执行文件名
        情况 3: 静态库文件与对应的头文件在系统文件夹下
                
        系统库路径:
                /usr/include 存储头文件
                /usr/lib 或 /lib 存储库文件
        注意:
                为了让静态库文件与其对应的头文件和系统文件夹下,所以需要移动
                sudo mv includes/myfun.h /usr/include
                sudo mv libs/libmyfun.a /usr/lib
        命令:
                gcc 源文件名 -l 静态库名 -o 生成的可执行文件名

动态库

制作:

        命令:

                gcc -shared 源文件名 -o 生成的动态库文件名.so

使用:

        情况1:使用动态库的文件与动态库在同一文件夹下

                命令:

                        gcc 源文件名 动态库名称 -o 生成的可执行文件名

        情况2:使用静态库的文件与静态库不在同一文件夹下

                命令:

                        gcc 源文件名 -L 动态库所在路径 -l 动态库名称 -I 头文件所在路径
                注意:
                        动态库名需要去掉前面的lib与后面.so

        情况3:静态库文件与对应的头文件在系统文件夹下

                命令:

                        gcc 源文件名 -l 静态库名 -o 生成的可执行文件名

注意:

        运行中出现动态库找不到问题,需要将动态库所在目录导入用户环境变量

        export LD_LIBRARY_PATH=库文件所在路径:$LD_LIBRARY_PATH

        export LD_LIBRARY_PATH=./:$LD_LIBRARY_PATH

        

http://www.hkea.cn/news/128929/

相关文章:

  • 怎么看一个网站做没做竞价公司网站怎么建立
  • seo神马网站推广器怎么做神马搜索排名seo
  • 桂林漓江景区网站优化推广排名
  • 网站首页模板设计图网络推广平台代理
  • 一女被多男做的视频网站搜全网的浏览器
  • 建设公司网站费用电脑培训课程
  • 电子商务网站建设课后题女生学网络营销这个专业好吗
  • 新疆兵团建设网站商丘seo优化
  • 手机微信网站怎么做的软文发布网站
  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗
  • 诸暨住房和城乡建设委员会网站怎么制作网站?
  • 昆明cms建站模板视频号排名优化帝搜软件
  • 商务咨询网站源码重庆网站建设哪家好
  • 建设部网站从何时可以查询工程师证深圳全网推广服务
  • 网页制作工具的选择与网站整体风格是有关系的友情链接论坛
  • 免费商会网站模板百度推广账号
  • 玄武模板网站制作品牌关键词排名点击软件网站
  • 网站title的写法微信软文怎么写
  • 设计企业网站流程磁力引擎