common

C/C++头文件保护的一点认识

柔情痞子 提交于 2020-01-28 14:00:13
我们在写C/C++头文件时,都知道开头要加上头文件保护,这样可以防止重复包含,如下这样, // file: test.h # ifndef _TEST_H_ # define _TEST_H_ // todo # endif 只要保证这个宏的名字是独一无二的就可以了。或者这样, // file: test.h # pragma once // todo 都可以达到相同效果。 大家有没有想过这样的问题: 所谓的防止重复包含,是作用在什么范围呢? 答案是 一个独立的编译单元 ,关于这个概念可以看 这篇文章 ,就是一个.c或.cpp文件,本人之前一直以为是整个代码工程里只展开一次,惭愧! 解释 假如工程中有个头文件叫common.h,还有2个.c文件叫aa.c和bb.c,aa.c包含了common.h,bb.c也包含了common.h,当进行预编译时,common.h会在aa.c和bb.c里都展开,而防止重复包含,是指在aa.c中只展开一次(aa.c里或者aa.c调用的头文件里可以多次包含common.h,但展开时只展开一次),同理,在bb.c里也是只展开一次。 这样,实际在整个工程中是展开了2次(仅对aa.c和bb.c来说)。 重复定义简析 这里再讲述一下代码编译过程中经常遇到的重复定义的问题,C/C++中变量只能定义一次,但是可以声明多次,如果写代码时把定义放到了头文件中

Guava学习笔记:Google Guava 类库简介

泄露秘密 提交于 2020-01-28 08:34:01
转自:https://www.cnblogs.com/peida/archive/2013/06/08/3120820.html   Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等. 这些高质量的 API 可以使你的JAVa代码更加优雅,更加简洁,让你工作更加轻松愉悦。下面我们就开启优雅Java编程学习之旅!    项目相关信息:   官方首页:http://code.google.com/p/guava-libraries   官方下载:http://code.google.com/p/guava-libraries/downloads/list   官方文档:http://docs.guava-libraries.googlecode.com/git/javadoc http://www.ostools.net/apidocs/apidoc?api=guava    源码包的简单说明:   com.google.common.annotations:普通注解类型。   com.google.common.base

小程序模块化

爱⌒轻易说出口 提交于 2020-01-28 04:21:27
官网理论 模块化 可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。 exports 是 module.exports 的一个引用,因此在模块里边随意更改 exports 的指向会造成未知的错误。所以更推荐开发者采用 module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。 小程序目前不支持直接引入 node_modules , 开发者需要使用到 node_modules 时候建议拷贝出相关的代码到小程序的目录中或者使用小程序支持的 npm 功能。 // common.js function sayHello(name) { console.log(`Hello ${name} !`) } function sayGoodbye(name) { console.log(`Goodbye ${name} !`) } module.exports.sayHello = sayHello exports.sayGoodbye = sayGoodbye 在需要使用这些模块的文件中,使用 require(path) 将公共代码引入 const common = require('common.js') Page({ helloMINA() { common

myEclipse项目转成Eclipse项目

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 00:34:51
这里说一种把myEclipse项目转成Eclipse项目继续开发 1. 请首先确保你的eclipse是javaee版本的,或者已经安装看wtp插件 2. 然后修改eclipse工程下的.project文件: 3. 在<natures></natures>中加入 [html] view plain copy < nature > org.eclipse.wst.common.project.facet.core.nature </ nature > < nature > org.eclipse.wst.common.modulecore.ModuleCoreNature </ nature > < nature > org.eclipse.jem.workbench.JavaEMFNature </ nature > 4. 在<buildSpec></buildSpec>中加入 [html] view plain copy < buildCommand > < name > org.eclipse.wst.common.project.facet.core.builder </ name > < arguments > </ arguments > </ buildCommand > < buildCommand > < name > org.eclipse.wst

Terraform指南:安装

痞子三分冷 提交于 2020-01-25 10:55:53
使用之前首先必须将 Terraform 安装在你的机器上。Terraform 是以二进制安装包发布的,它可以支持所有的平台和架构。在本章节我们将不会涉及如何通过源代码编译 Terraform,但是对于那些需要通过源代码编译来构建可信任的二进制的用户,我们在指南的其他章节会有阐述。 安装 Terraform Terraform 安装包是zip格式的压缩文件,安装之前需首先根据系统类型下载合适的安装包。 Terraform 安装包下载完成后进行解压。Terraform 是一个名称为 terraform 的可执行的二进制文件,包中的其他任何文件都可以删除也不影响 Terraform 正常工作。 最后,确保 terraform 二进制文件路径添加到 PATH 环境变量中。请参见本指南中关于在Linux、Mac、Windows上如何设置 PATH。 验证安装 Terraform 安装完成之后,打开终端检查 terraform 是否可用,执行 terraform 命令可以看到如下类似的帮助提示: $ terraform Usage: terraform [--version] [--help] <command> [args] The available commands for execution are listed below. The most common, useful

Android版本与Linux内核的关系及代码获取

♀尐吖头ヾ 提交于 2020-01-25 10:10:53
一.Android版本与Linux内核的关系 英文名 中文名 Android版本 Linux内核版本 No 无 1.1 Cupcake 纸杯蛋糕 1.5 2.6.27 Donut 甜甜圈 1.6 2.6.29 Eclair 松饼 2.0 2.6.29 Eclair 松饼 2.1 2.6.29 Froyo 冻酸奶 2.2 2.6.32 Gingerbread 姜饼 2.3 2.6.35 Honeycomb 蜂巢 3.0 ? 二.下载源码分为2大部分 1.Android源码; 2.Android内核(Android Linux Kernel); 三.如何下载Android内核 git clone git://android.git.kernel.org/kernel/common.git 四.如何查看Android内核的版本(代码级查看) 在内核代码目录: 运行命令:git branch –a 运行实例 [root@localhost common]# git branch -a (查看版本) * android-2.6.36 remotes/origin/HEAD -> origin/android-2.6.36 remotes/origin/android-2.6.35 remotes/origin/android-2.6.36 remotes/origin/archive

Tomcat访问日志详细配置

徘徊边缘 提交于 2020-01-24 05:30:40
在server.xml里的<host>标签下加上 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> 就可以了,下面咱们逐一分析各个参数。 className 官方文档上说了This MUST be set to org.apache.catalina.valves.AccessLogValve to use the default access log valve. &<60; 想配置访问日志?这就必须得写成这样。 directory 这个东西是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然你也可以修改,我就给改成了D:\ prefix 这个是日志文件的名称前缀,我的日志名称为localhost_access_log.2007-09-22.txt,前面的前缀就是这个localhost_access_log suffix 这就是后缀名啦,可以改成别的 pattern 这个是最主要的参数了,具体的咱们下面讲,这个参数的内容比较丰富。 resolveHosts

Android自动化教程实战:Appium+Python (对应的链接地址:https://www.jianshu.com/p/8b06f76be7e6)

浪尽此生 提交于 2020-01-16 01:24:04
本文不在叙述Appium环境安装。如有需要请参考: http://www.jianshu.com/p/7a6fa7ab662b 1. 创建项目目录 mkdir project{conf,common,logs,doc,tests} #conf:存放appium-android配置设置,以及App页面元素配置文件; #logs:存放日志以及截图; #doc:存放文档; #common:存放工具类的脚本; #tests:存放测试脚本; 整个目录如下: Paste_Image.png 2. Appium Android配置文件 Appium Android Settings 设置如下: Paste_Image.png Python脚本配置如下: #!/usr/bin/env python # -*- coding:utf-8 -*- import os import sys import time import re from appium import webdriver sys.path.append("..") #用于解决多个手机连接问题 from common.mobile import get_serialno #Read mobile deviceId device_id = get_serialno() #Read mobile os Version os_version

AOJ_ALDS1_10_C Longest Common Subsequence【LCS+DP】

匆匆过客 提交于 2020-01-12 08:21:23
Longest Common Subsequence Aizu - ALDS1_10_C For given two sequences X and Y, a sequence Z is a common subsequence of X and Y if Z is a subsequence of both X and Y. For example, if X={a,b,c,b,d,a,b} and Y={b,d,c,a,b,a}, the sequence {b,c,a} is a common subsequence of both X and Y. On the other hand, the sequence {b,c,a} is not a longest common subsequence (LCS) of X and Y, since it has length 3 and the sequence {b,c,b,a}, which is also common to both X and Y, has length 4. The sequence {b,c,b,a} is an LCS of X and Y, since there is no common subsequence of length 5 or greater. Write a program

【Lintcode】077.Longest Common Subsequence

空扰寡人 提交于 2020-01-11 05:02:19
题目: Given two strings, find the longest common subsequence ( LCS ). Your code should return the length of LCS . Clarification What's the definition of Longest Common Subsequence? https://en.wikipedia.org/wiki/Longest_common_subsequence_problem http://baike.baidu.com/view/2020307.htm Example For "ABCD" and "EDCA" , the LCS is "A" (or "D" , "C" ), return 1 . For "ABCD" and "EACB" , the LCS is "AC" , return 2 . 题解: Solution 1 () class Solution { public: /** * @param A, B: Two strings. * @return: The length of longest common subsequence of A and B. */ int longestCommonSubsequence(string A, string