条件编译

static_assert作用

无人久伴 提交于 2019-12-02 08:24:09
编译校验,校验条件失败,则输出错误信息 格式: static_assert(“条件”,”错误信息”); 例子: static_assert(sizeof(int)!=4,”this isn’t 32bit windows!”); 判断int长度是否为4,若不是,则说明不是在32bit编译环境,编译失败,并且打印错误信息。 来源: https://blog.csdn.net/qq_34351547/article/details/102740483

Delphi 的编译指令(2): 条件语句的更多用法

随声附和 提交于 2019-12-01 22:18:19
1. $IFDEF 等同于 $IF DEFINED(...) : 它们的结束分别是: $ENDIF、$IFEND; 例子中的 VER200 是 Delphi 2009 的标识. begin {$IFDEF VER200} ShowMessage('这是 Delphi 2009'); {$ENDIF} {$IF DEFINED(VER200)} ShowMessage('这是 Delphi 2009'); {$IFEND}end; 2. $IFNDEF 等同于 $IF NOT DEFINED(...) : 它们的结束分别是: $ENDIF、$IFEND; 例子中的 VER150 是 Delphi 7 的标识. begin {$IFNDEF VER150} ShowMessage('这不是 Delphi 7'); {$ENDIF} {$IF NOT DEFINED(VER150)} ShowMessage('这不是 Delphi 7'); {$IFEND}end; 3. 可以使用 or 和 and: begin {$DEFINE AAA} {$DEFINE BBB} {$IF DEFINED(AAA) OR DEFINED(BBB)} ShowMessage('条件标识符 AAA 和 BBB 其中一个定义了'); {$IFEND} {$IF DEFINED(AAA) AND

Vue简单知识点

三世轮回 提交于 2019-12-01 06:17:23
vue生命周期的理解 什么是vue生命周期? Vue 实例从创建到销毁的过程,就是生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过程,称之为 Vue 的生命周期。 vue生命周期总共有几个阶段? 总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后 beforeCreate(创建前) : Vue 实例的挂载元素 $el 和 数据对象data都为undefined,还未初始化。 created(创建后) :完成数据观测,属性和方法的运算,初始化事件, $el 还没有。 beforeMount(载入前) :Vue 实例的 $el 和 data 都初始化了,但还是挂载之前为虚拟的 dom节点, data.message 还未替换。 mounted(载入后) : Vue 实例挂载完成,data.message 成功渲染。 beforeUpdate(更新前) :当 data 发生变化时, 在DOM重新渲染之前调用。 updated(更新后) :在 DOM 重新渲染之后调用。 beforeDestroy(销毁前) :在 Vue 实例销毁之前调用。实例仍然完全可用。 destroyed(销毁后) :在实例销毁之后调用。调用后,所有的事件监听器会被移除,所有的子实例也会被 销毁。 vue生命周期的作用是什么?

c 语言条件编译

一个人想着一个人 提交于 2019-11-30 20:27:24
指令 用途 # 空指令,无任何效果 #include 包含一个源代码文件 #define 定义宏 #undef 取消已定义的宏 #if 如果给定条件为真,则编译下面代码 #ifdef 如果宏已经定义,则编译下面代码 #ifndef 如果宏没有定义,则编译下面代码 #elif 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码 #endif 结束一个 #if……#else 条件编译块 #error 停止编译并显示错误信息 一、文件包含 为了避免那些只能包含一次的头文件被多次包含,可以在头文件中用编译时条件来进行控制。例如: #ifndef MY_H #define MY_H …… #endif 二、宏 1.#define 指令 #define 预处理指令是用来定义宏的。该指令最简单的格式是:首先神明一个标识符,然后给出这个标识符代表的代码。在后面的源代码中,就用这些代码来替代该标识符。这种宏把程序中要用到的一些全局值提取出来,赋给一些记忆标识符。 #define MAX_NUM 10 int array[MAX_NUM]; for(i=0;i<MAX_NUM;i++) 在这个例子中,对于阅读该程序的人来说,符号 MAX_NUM 就有特定的含义,它代表的值给出了数组所能容纳的最大元素数目。程序中可以多次使用这个值。作为一种约定,习惯上总是全部用大写字母来定义宏

@cc_on

不羁岁月 提交于 2019-11-30 08:29:55
<script>/*@cc_on window.location.href="http://support.dmeng.net/upgrade-your-browser.html?referrer="+encodeURIComponent(window.location.href); @*/</script> 起因: 做前端开发,为了对付低端的浏览器,而W3C标准浏览器会直接把这些代码当作注释, 大家都愿意这样分: 低级浏览器和高级浏览器 当然有很多办法可以区分: UA、属性检测等等... 除了这个以外也可以使用微软提供的 @cc_on 这个诡异的语法 参考: https://msdn.microsoft.com/library/8ka90k2e Internet Explorer条件编译英文名叫Internet Explorer Javascript conditional compilation,IE的javascript又叫JScript,所以又叫Internet Explorer JScript conditional compilation,它和IE的条件注释(Internet Explorer conditional comments)类似,只是条件注释是HTML注释,无法在JS代码中使用。 Internet

第一章 Python基础

拈花ヽ惹草 提交于 2019-11-30 02:36:32
第一章 Python基础 第一节 Python 简介 1. Python的出生 python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 (龟叔:2005年加入谷歌至2012年,2013年加入Dropbox直到现在,依然掌握着Python发展的核心方向,被称为仁慈的独裁者)。 2. Python的今世 2019年6月的TIOBE排行榜,Python占据第三的位置, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。 据当前来看Python在TIORB排行榜中,位居第三.Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言. Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可! Python的主要应用领域: 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。典型WEB框架有Django 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas 系统运维: 运维人员必备语言 爬虫

条件编译#ifdef 和#endif

喜夏-厌秋 提交于 2019-11-29 20:09:02
转于 http://blog.csdn.net/fly_yr/article/details/39964035 C++中 #ifdef 和#endif的作用 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是 “条件 编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即: #ifdef 程序段1 #denif 在头文件中使用#ifdef和#ifndef是非常重要的,可以防止双重定义的错误。 如你在头文件aaa.h中定义了一个类aaa如下: class aaa { }; 如果两次#include "aaa.h"(不见得是直接,也有可能两个不同的头文件中都包含了这个头文件)就会出错,因为相同的类不能定义两次。把aaa.h稍做修改: #ifndef _aaa_ #define _aaa_ class aaa { }; #endif 就可以避免这样的问题。 因为当你已经包含过这个文件,_aaa_就会有了定义,那么

C语言条件编译(#if,#ifdef,#ifndef,#endif,#else,#elif)

戏子无情 提交于 2019-11-29 20:08:24
1、条件编译介绍 条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码。例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代码的各种不同版本。 条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以 #if 开头的条件编译区域具有下面的格式: #if 表达式1 [ 组1] [#elif 表达式2 [ 组2]] ... [#elif 表达式n [ 组n ]] [#else [ 组n+1 ]] #endif 预处理器会依次计算条件表达式,直到发现结果非 0(也就是 true)的条件表达式。预处理器会保留对应组内的源代码,以供后续处理。如果找不到值为 true 的表达式,并且该条件式编译区域中包含 #else 命令,则保留 #else 命令组内的代码。 组 1、组 2 等代码段,可以包含任意 C 源代码,也可以包含更多的命令,包括嵌套的条件式编译命令。在预处理阶段结束时,没有被预处理器保留以用于后续处理的组会从程序中全部删除。 2、#if 和 #elif 命令 作为 #if 或 #elif 命令条件的表达式,必须是整数常量预处理器表达式。这与普通的整数常量表达式不同,主要区别在于: (1

条件编译ifndef、ifdef、endif

流过昼夜 提交于 2019-11-29 20:07:51
1、条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分也可以没有,即: 1 #ifdef 2 程序段1 3 #endif 2、条件编译命令另一种形式: 1 #ifndef 标识符 2 程序段1 3 #else 4 程序段2 5 #endif 只是第一行与第一种形式不同:将“ifdef”改为“ifndef”。它的作用是:若标识符未被定义则编译程序段1,否则编译程序段2。这种形式与第一种形式的作用相反。 3、条件编译的例子 我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。可以用以下的条件编译: 1 #ifdef WINDOWS 2 #define MYTYPE long 3 #else 4 #define MYTYPE float 5 #endif 6 如果在Windows上编译程序,则可以在程序的开始加上 1 #define WINDOWS 这样则编译下面的命令行: #define MYTYPE long 如果在这组条件编译命令之前曾出现以下命令行: 1 #define WINDOWS 0

booster编译问题

邮差的信 提交于 2019-11-29 19:26:22
直接编译的时候执行里面的task会提示编译不过,报错信息 Cannot perform signing task ':signArchives' because it has no configured signatory. // ./gradlew assemble -x signArchives // 或者,加个条件语句,当怎样的时候再去签名,而这个属性可以不在gradle 的配置文件中添加 // 原因是这里:https://github.com/jaegertracing/jaeger-client-java/issues/202 我的修改方法 来源: https://www.cnblogs.com/pjex/p/11529572.html