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

高端网站设计哪里比较好想在意大利做购物网站

高端网站设计哪里比较好,想在意大利做购物网站,又拍云wordpress插件,网站300兆是多少钱翻译环境 C语言的代码是文本信息#xff0c;对于计算机来说无法直接理解#xff0c;需要通过翻译环境进行翻译成二进制信息#xff1b; 我们在写代码的时候#xff0c;一般都会写在一个源文件中#xff0c;这时候我们就使用我们的编译器(VS)将其转换为机器代码#xff0…翻译环境 C语言的代码是文本信息对于计算机来说无法直接理解需要通过翻译环境进行翻译成二进制信息 我们在写代码的时候一般都会写在一个源文件中这时候我们就使用我们的编译器(VS)将其转换为机器代码我们可以通过命令行的命令进行编译通过命令就会生成一个可执行文件我们就可以直接运行 下图是运行的逻辑图 编译 对于编译来说也分几个阶段 运行环境 程序执行的过程 程序必须载入内存中。在有操作系统的环境中一般这个由操作系统完成。在独立的环境中程序的载入必须由手工安排也可能是通过可执行代码置入只读内存来完成。程序的执行便开始。接着便调用main函数。开始执行程序代码。这个时候程序将使用一个运行时堆栈stack存储函数的局部变量和返回 地址。程序同时也可以使用静态static内存存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。终止程序。正常终止main函数也有可能是意外终止。 预处理详解 预定义符号 FILE //进行编译的源文件 LINE //文件当前的行号 DATE //文件被编译的日期 TIME //文件被编译的时间 STDC //如果编译器遵循ANSI C其值为1否则未定义 示例代码 #includestdio.h int main() {printf(%s\n, __FILE__);printf(%d\n, __LINE__);printf(%s\n, __DATE__);printf(%s\n, __TIME__);printf(%d\n, __STDC__);return 0; }#define 定义标识符 语法 #define name stuff 示例代码 #define MAX 1000 #define reg register //为 register这个关键字创建一个简短的名字 #define do_forever for(;;) //用更形象的符号来替换一种实现 #define CASE break;case //在写case语句的时候自动把 break写上。// 如果定义的 stuff过长可以分成几行写除了最后一行外每行的后面都加一个反斜杠(续行符)。 #define DEBUG_PRINT printf(file:%s\tline:%d\t \date:%s\ttime:%s\n ,\__FILE__,__LINE__ , \__DATE__,__TIME__ ) 其实就是把定义的内容进行互换用更容易记住的名称来代替 记住对于#define定义标识符后面不要加这样会导致你把分号也加入到stuff也会算进去定义 define 定义宏 #define允许把参数代入到文本中这种实现称为宏macro 宏的申明方式 #define name( parament-list ) stuff 其中的 parament-list 是一个由逗号隔开的符号表它们可能出现在stuff中 对于宏的申明方式需要注意括号与name紧贴不能有空格隔开这样就会判定为是stuff的内容 示例代码 #includestdio.h #define ADD(x,y) ((x)(y))int main() {int aADD(3,5);printf(%d,a);//8 }实际上这也是替换ADD(3,5)在主程序中实际上就是35对于宏的申明对每个参数和最终值都要加上小括号这样才比较严谨 例如 #define SQUARE( x ) x * x int main() {int a5;//打印一个6*6的 printf(%d\n ,SQUARE( a 1) ); //实际上51*51 }对于宏来说参数不会转换为一个最终值传过去它只会照着你的参数形式原封不动的传过去所以要加上小括号 #define的替换规则 在程序中扩展#define定义符号和宏时需要涉及几个步骤。 在调用宏时首先对参数进行检查看看是否包含任何由#define定义的符号。如果是它们首先被替换。替换文本随后被插入到程序中原来文本的位置。对于宏参数名被他们的值所替换。最后再次对结果文件进行扫描看看它是否包含任何由#define定义的符号。如果是就重复上述处理过程。 注意 1 宏参数和#define 定义中可以出现其他#define定义的符号。但是对于宏不能出现递归。 2 当预处理器搜索#define定义的符号的时候字符串常量的内容并不被搜索。 带副作用的宏参数 当宏参数在宏的定义中出现超过一次的时候如果参数带有副作用那么你在使用这个宏的时候就可能出现危险导致不可预测的后果。副作用就是表达式求值的时候出现的永久性效果。 如 x1;//不带副作用 x;//带有副作用示例代码 #define MAX(a, b) ( (a) (b) ? (a) : (b) ) int main() {int x 5;int y 8;int z MAX(x, y);printf(x%d y%d z%d\n, x, y, z); }答案x6 y10 z9 由于后置加加的原因所以对于这个宏来说程序会进行先后顺序的执行首先是5和8再比大小由于8比较大判断之后后置加加返回值是9x为5的后置加加就是6而b判断之后又加了一次所以是10 所以不要使用带有副作用的参数 #和## 如何把参数插入到字符串中 nt main() {printf(hello world\n);printf(hello world\n);return 0; }对于这段代码来说打印结果都是一样的字符串是有自动连接的特点 看下面代码 #define PRINT(FORMAT, VALUE) printf(the value is FORMAT\n, VALUE); int main() {PRINT(%d, 10); }结果the value is 10 对于宏来说把“%d看作为字符串将字符串内容进行插入且只有当字符串作为宏参数的时候才可以把字符串放在字符串中。 而如果使用#就会把宏的参数转换为对应的字符串 #define PRINT(FORMAT, VALUE) printf(the value is #FORMAT\n, VALUE); int main() {PRINT(%d, 10); }结果the value is “10” 多了一对双引号表明把整个参数都带进去了 示例代码 #define PRINT(n, format) printf(the value of #n is format \n, n)int main() {int a 20;//printf(the value of a is %d\n, a);PRINT(a, %d);int b 15;//printf(the value of b is %d\n, b);PRINT(b, %d);float f 4.5f;//printf(the value of f is %f\n, f);PRINT(f, %f);return 0; }结果 the value of a is 20 the value of b is 15 the value of f is 4.500000 如果在上面程序去掉#程序将会报错因为在字符串插入的并非是字符串对于宏来说是错误的 而##可以把位于它两边的符号合成一个符号。它允许宏定义从分离的文本片段创建标识符。 示例代码 #define CAT(x,y) x##yint main() {int Class110 2024;printf(%d\n, CAT(Class, 110));printf(%d\n, Class110);return 0; }结果 2024 2024 宏与函数对比 宏通常被应用于执行简单的运算。 如上面的简单的加法 #define ADD(x,y) ((x)(y)) 而不用函数的原因 1, 用于调用函数和从函数返回的代码可能比实际执行这个小型计算工作所需要的时间更多。 所以宏比函数在程序的规模和速度方面更胜一筹。 2.更为重要的是函数的参数必须声明为特定的类型。 所以函数只能在类型合适的表达式上使用。反之这个宏怎可以适用于整形、长整型、浮点型等可以 用于来比较的类型。 宏是类型无关的 宏的缺点当然和函数相比宏也有劣势的地方 每次使用宏的时候一份宏定义的代码将插入到程序中。除非宏比较短否则可能大幅度增加程序 的长度。宏是没法调试的。宏由于类型无关也就不够严谨。宏可能会带来运算符优先级的问题导致程容易出现错。 而对于函数和宏的命名宏的命名一般都用大写字母而函数一般是大小写字母结合 #undef 如果对于已经下定义的名字已经被重复使用或者不想用了就用#undef #undef NAME 条件编译 在编译一个程序的时候我们如果要将一条语句一组语句编译或者放弃是很方便的。因为我们有条件编译指令 1 #if 常量表达式 //… #endif 通过判断常量表达式的真假来判断这段代码要不要编译 示例代码 #define __DEBUG__ 1 #if __DEBUG__ //真//.. #endif#if 常量表达式 //… #elif 常量表达式 //… #else //… #endif 与if条件判断一样用通过判断哪个条件成立其他条件就会被省略 3. #ifdef symbol //… #endif #ifndef symbol //… #endif 判断是否被定义 4.嵌套指令 #if defined(OS_UNIX) #ifdef OPTION1 unix_version_option1(); #endif #ifdef OPTION2 unix_version_option2(); #endif #elif defined(OS_MSDOS) #ifdef OPTION2 msdos_version_option2(); #endif #endif 文件包含 #include 指令可以使另外一个文件被编译。就像它实际出现于 #include 指令的地方一样。 预处理器会对先对预指令进行删除,用文件中的内容进行替换;一个源文件如果被包含5次,那么就编译5次; 对于头文件的包含有两种形式; 第一种: #include “filename” 本地文件包含:先在源文件所在目录下查找如果该头文件未找到编译器就像查找库函数头文件一样在标准位置查找头文件; 找不到就是没有该头文件,程序报错; 第二种: #include filename.h 库文件包含:查找头文件直接去标准路径下去查找如果找不到就提示编译错误。 对于库文件包含于头文件包含的关系,头文件包含实际上包括着库文件包含;
http://www.zqtcl.cn/news/387561/

相关文章:

  • 门户网站主要特点和功能深圳地铁优化
  • 银川网站推广方式湖南建工交通建设有限公司网站
  • 知道网站域名怎么联系怎么创建自己的公司网站
  • 淘宝网站开发多少金额网站优化 福州
  • 百度推广让我先做虚拟网站后进一步优化落实
  • 好的网站建设启示汕头网页设计网站方案
  • 深圳网站制作开发免费精准客户软件
  • 网站超链接用什么南宁行业平台开发公司
  • 注册门户网站襄樊seo快速排名
  • 优秀的手机网站iis 设置此网站的访问权限
  • 用nat123做自己的网站深圳市建设工程质量检测中心官网
  • 网上做衣服的网站废旧网站哪个做的最好
  • 网站开发设置网页端口wordpress 知识库
  • 网站建设的方法有四种开发一款新闻app需要多少钱
  • 成都网站建站公司2023年防疫新政策
  • 17做网店一样的网站十大互联网培训机构
  • 中企网络科技建站施工企业oa办公系统
  • 成都网站推广公司排名淘宝商家网站建设
  • 平台网站建设报价网站建设企业蛋糕
  • 上海创意网站建设电子商务毕业设计网站建设
  • 如何让网站打不开 解析wordpress pdf检索
  • 网站建设大作业感想台州企业网站模板建站
  • 淄博网站的优化上海营销网站建站公司
  • 长春网站建设硕成传媒长春电商网站建设哪家好
  • 舟山建设管理网站手表交易网站
  • 如何电话推销客户做网站沉浸式展厅搭建商
  • 重庆网站建设开发e福州官方网站
  • 网站怎么可以被收录广州网站建设全包
  • 网站备案期间如何采购需求网站建设
  • 东莞seo网站优化运营南通网站排名外包