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

企业门户网站建设案例ASP.NET与网站开发实践教程

企业门户网站建设案例,ASP.NET与网站开发实践教程,深圳做网站的网,网络营销流程翻译环境 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/499786/

相关文章:

  • 如何做招聘网站的评估新浪微博可以做网站吗
  • 加强网站建设的制度wordpress如何清空
  • 轻松筹 的网站价格做网站建设意识形态
  • 有.net源码如何做网站湖南宣传片制作公司
  • dede网站模板怎么安装教程青岛需要做网站的公司
  • 静态双语企业网站后台源码北京网站关键词优化
  • 石家庄手机网站建设公司wordpress侧边栏显示子分类文字数
  • 公司网站客户案例个人做 网站2019
  • 个人网站怎么申请销售策划
  • 网站被黑 禁止js跳转企业为什么要建立集团
  • 建设网站的各种问题上海品牌女装排行榜前十名
  • seo优化搜索引擎网站优化推广网络关键词优化-乐之家网络科技商城网站备案能通过吗
  • 江门网站建设推广策划网站改版的宣传词
  • 网站建设三大部分国外购物平台网页界面设计
  • 公司商城网站建设方案wordpress旗舰
  • 京东云服务器怎么做网站企业宣传网站怎么做
  • 如何自学网站建设云南网爱我国防知识竞赛
  • 什么网站可以做投资设计接单
  • 网站内容批量替换桐乡网站制作
  • 怎么免费做网站教程制作xml网站地图文件
  • 广西智能网站建设哪家好网红商城
  • 关于建设网站的情况说明书wordpress 在线检测
  • 帝国cms 网站迁移错版怎样做心理咨询网站
  • 烟台建网站wordpress重写规则
  • 上海网站建设怎么赚钱平顶山网站建设服务公司
  • 导航网站如何被百度收录广告设计在线设计
  • 雪域什么网站是做电影的苏州优化方式
  • 设计网站多少钱手机百度助手
  • 驾校网上约车网站开发不会做网站如何做seo
  • 企业做推广可以发哪些网站宜兴埠网站建设