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

建网站哪个公司好住房城乡建设网站藁城

建网站哪个公司好,住房城乡建设网站藁城,代理网站哪个好,宁乡电商网站建设报价假如现在要开发一个C语言程序#xff0c;让它输出红色的文字#xff0c;并且要求跨平台#xff0c;在 Windows 和 Linux 下都能运行#xff0c;怎么办呢#xff1f;这个程序的难点在于#xff0c;不同平台下控制文字颜色的代码不一样#xff0c;我们必须要能够识别出不同…假如现在要开发一个C语言程序让它输出红色的文字并且要求跨平台在 Windows 和 Linux 下都能运行怎么办呢这个程序的难点在于不同平台下控制文字颜色的代码不一样我们必须要能够识别出不同的平台。Windows 有专有的宏_WIN32Linux 有专有的宏__linux__以现有的知识我们很容易就想到了 if else请看下面的代码 #include stdio.h int main(){if(_WIN32){system(color 0c);printf(http://c.biancheng.net\n);}else if(__linux__){printf(\033[22;31mhttp://c.biancheng.net\n\033[22;30m);}else{printf(http://c.biancheng.net\n);}return 0; } 但这段代码是错误的在 Windows 下提示 __linux__ 是未定义的标识符在 Linux 下提示 _Win32 是未定义的标识符。对上面的代码进行改进#include stdio.h int main(){#if _WIN32system(color 0c);printf(http://c.biancheng.net\n);#elif __linux__printf(\033[22;31mhttp://c.biancheng.net\n\033[22;30m);#elseprintf(http://c.biancheng.net\n);#endifreturn 0; }} #if、#elif、#else 和 #endif 都是预处理命令整段代码的意思是如果宏 _WIN32 的值为真就保留第 4、5 行代码删除第 7、9 行代码如果宏 __linux__ 的值为真就保留第 7 行代码如果所有的宏都为假就保留第 9 行代码。这些操作都是在预处理阶段完成的多余的代码以及所有的宏都不会参与编译不仅保证了代码的正确性还减小了编译后文件的体积。这种能够根据不同情况编译不同代码、产生不同目标文件的机制称为条件编译。 条件编译是预处理程序的功能不是编译器的功能。条件编译有多种形式下面一一讲解。#if 命令 #if 命令的完整格式为 #if 整型常量表达式1程序段1 #elif 整型常量表达式2程序段2 #elif 整型常量表达式3程序段3 #else程序段4 #endif它的意思是如常“表达式1”的值为真非0就对“程序段1”进行编译否则就计算“表达式2”结果为真的话就对“程序段2”进行编译为假的话就继续往下匹配直到遇到值为真的表达式或者遇到 #else。这一点和 if else 非常类似。需要注意的是#if 命令要求判断条件为“整型常量表达式”也就是说表达式中不能包含变量而且结果必须是整数而 if 后面的表达式没有限制只要符合语法就行。这是 #if 和 if 的一个重要区别。#elif 和 #else 也可以省略如下所示#include stdio.h int main(){#if _WIN32printf(This is Windows!\n);#elseprintf(Unknown platform!\n);#endif#if __linux__printf(This is Linux!\n);#endifreturn 0; }#ifdef 命令 #ifdef 命令的格式为 #ifdef  宏名     程序段1 #else     程序段2 #endif 它的意思是如果当前的宏已被定义过则对“程序段1”进行编译否则对“程序段2”进行编译。也可以省略 #else #ifdef  宏名     程序段 #endif VS/VC 有两种编译模式Debug 和 Release。在学习过程中我们通常使用 Debug 模式这样便于程序的调试而最终发布的程序要使用 Release 模式这样编译器会进行很多优化提高程序运行效率删除冗余信息。为了能够清楚地看到当前程序的编译模式我们不妨在程序中增加提示请看下面的代码#include stdio.h #include stdlib.h int main(){#ifdef _DEBUGprintf(正在使用 Debug 模式编译程序...\n);#elseprintf(正在使用 Release 模式编译程序...\n);#endifsystem(pause);return 0; }当以 Debug 模式编译程序时宏 _DEBUG 会被定义预处器会保留第 5 行代码删除第 7 行代码。反之会删除第 5 行保留第 7 行。#ifndef 命令 #ifndef 命令的格式为 #ifndef 宏名     程序段1  #else      程序段2  #endif 与 #ifdef 相比仅仅是将 #ifdef 改为了 #ifndef。它的意思是如果当前的宏未被定义则对“程序段1”进行编译否则对“程序段2”进行编译这与 #ifdef 的功能正好相反。 区别 最后需要注意的是#if 后面跟的是“整型常量表达式”而 #ifdef 和 #ifndef 后面跟的只能是一个宏名不能是其他的。例如下面的形式只能用于 #if#include stdio.h #define NUM 10 int main(){#if NUM 10 || NUM 20printf(NUM: %d\n, NUM);#elseprintf(NUM Error\n);#endifreturn 0; } 运行结果NUM: 10再如两个宏都存在时编译代码A否则编译代码B#include stdio.h #define NUM1 10 #define NUM2 20 int main(){#if (defined NUM1 defined NUM2)//代码Aprintf(NUM1: %d, NUM2: %d\n, NUM1, NUM2);#else//代码Bprintf(Error\n);#endifreturn 0; } 运行结果NUM1: 10, NUM2: 20#ifdef 可以认为是 #if defined 的缩写。
http://www.zqtcl.cn/news/66108/

相关文章:

  • 国外做装饰画的网站百度网站怎么建设的
  • 制作一个网站多少钱衡阳网站开发培训
  • 网站元素优化 移动站新网站如何做网站优化
  • 云南云桥建设股份有限公司官方网站单页设计思路
  • 杭州搭建网站闵行区网页设计公司
  • 百度提交网站收录地址抖音代运营是啥
  • 网站搜索页面怎么做全国的网站建设
  • wap手机网站开发电子产品网站建设分析的摘要
  • 酷 网站模板网站建设拍金手指排名贰贰
  • 网站分为几级页面桂林腾达网是什么网
  • 在那个网站做ppt可以赚钱网站建设什么专业
  • 如何在服务器上放网站建设工程合同范本2021
  • 网站标题更换曲靖企业网站建设
  • 深圳个性化建网站公司郑州自助建站软件
  • 网盘建网站汕头有几个区
  • 数字营销 h5 网站开发网站模板 北京公司
  • 网站建设背景分析论文上海做推广的公司
  • 网站建设的结论树莓派做网站服务器性能怎么样
  • 个人如何做网站开源 网站源代码
  • 涨口碑说做的网站wordpress 4.5 安装失败
  • 国内做性视频网站在线营销网站建设
  • 丹徒网站建设公司工作室网站
  • 万能小偷程序做网站用jsp做的网站前后端交互
  • 舟山网站设计什么样的网站空间做电影网站不卡
  • 太原cms建站模板杭州蓝韵网络有限公司
  • 农副产品销售网站开发wordpress主页不加index.php 打不开
  • 电商开发网站公司wordpress 文字 居中
  • shopex更改数据密码后网站打不开了关键词app
  • 做链家房产的网站怎么做的黄山网站建设怎么做
  • 网站建设肆金手指排名wordpress widget修改