1.同c++模板的对比: c++模板有点像是发展到极致的宏.他们非常强大,但代价就是代码膨胀和不易理解. 在c++中使用一个模板时,会为那一套特定的模板实参编译代码,好在模板实参本来就在源代码中一样.这意味着对约束的需求就不像对编译器需求那么多,因为编译器在为这一套特定的模板实参编译代码时,会检查你可以对类型执行哪些处理.不过,c++标准协会已经意识到约束仍然是有用的.约束又被包含进来,然后在c++11中删除了. c++编译器具有一定的智能,针对任何给定的一套模板实参,代码都只会编译一次.但是,…
一直想做开发语言性能对比,刚好有时间都做了给大家参考一下, 编译类:C++和Java表现还不错 脚本类:TCC脚本动态运行C语言,性能比其他脚本快好多... 想玩TCC的同学下载测试包,TCC目录下修改script.c,运行TccTest1.exe即可看到修改效果,无需编译!!! 链接:http://pan.baidu.com/s/1kUVGGwJ 密码:mgpx C++(VS2017) java8.2 Python2.7-3.5.2 aardio(LUA) TCC…
C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/details/8841208 中午看了下公众号 发现一个 计算命令执行时间的方法.. time comand.sh 就可以 之前还是自己 捯饬了一个计算realtime 的方法..感觉自己好笨..   在完成编译原理的实验时,想比较用链表和哈希表共同执行一段程序的时间是否有差异,最开始使用函数如下: mai…
Go语言目前已经在开发者中越发的流行,自然很多人都在寻找合适的IDE来实现代码语法高亮.自动补全以及其他编辑特性. 下面就几种常用的IDE进行对比介绍: 1. Sublime text 这个文本编辑器在开发者中较为普及,应该说sublime并非一个完全成熟的IDE,但是它具备很多语言的扩展插件,比如python.lua等,其中有一个插件GoSublime专门针对go语言,GoSublime提供了语法高亮.自动补全等功能,这些功能使得Sublime Text成为一很实用的Go IDE. 2. In…
代码较长,建议使用电脑阅读本文. 10分钟入门Python 本文中使用的是Python3 如果你曾经学过C语言,阅读此文,相信你能迅速发现这两种语言的异同,达到快速入门的目的.下面将开始介绍它们的异同. Python与C语言基本语法对比 Python使用空格来限制代码的作用域,相当于C语言的{ }. 第一个程序 Hello,World! C语言 #include<stdio.h> int main(){ printf("Hello,World!"); return 0; }…
共同之处:都使用字符串或数值来引用一个客观实体.当然数字和字符串也可以作为实体对象,这取决于人的解释. 不同之处:数学语句每一行都给出了一个结论, 程序语句的每一行都定义了一个过程.注意这里所指的程序语句不局限于计算机编程语言,在进行数值逼近解微分方程的时候,表达式成为了程序语句. 数学语句的每一行都是一个结论,在给定范围内,每个符号只能引用同一个实体,换句换说,每个符号都是”给定“或”任意给定” 的!意味着这行语句可以成为所有后来出现的结论的前提条件.但是在程序语言中,一个符号可以引用不同的实…
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE 硬件平台: 1.FPGA型号:XC6SLX45-2CSG324 二. 原理介绍 我的开发板上有4个LED灯,原理图如下: 由原理图可知仅当FPGA的对应管脚输入低电平时LED才会亮,流水灯的效果可以轮流让四个对应管脚输出低电平来产生. 三. 目标任务 编写四个LED流水的Verilog代码并用ModelSim进行仿真,仿真通过以后下载到开发板进…
这里我用的python版本是Python 3.6.2(64位),php版本是PHP 7.0.12(64位),node版本是v6.11.0(64位),Go 1.8.3(64位),C# 基于.Net 4.0,lua 5.1.4 对比 python import time calNum = 100000000 def test(): sum = 0 for x in range(1, calNum + 1): sum += x return sum start = time.time() test()…
Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { //在{}中定义属性(全局变量/实例变量) //注意:只能定义不能赋值,因为这里只是在做声明操作,不能赋值的 //加上下划线,为了区分局部变量 NSString *_name;//姓名,默认值是nil:空指针,可以查看定义:#define nil NULL NSInteger _age;//年龄,默认值是0 } //定义方法 //-:实例方法,+:…
问题描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等.比如 Beijing 和 Hebei 2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing 3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2).比如 beijing 和 BEIjing 4:两个字符串长度相等,但是即使是不区分大小写也不能使这…
1111 1.C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素.C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病.Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C.一…
[泛型的概念](1)没有泛型的时候,所有的对象都是以object为基础,如果要使用时必须进行强制类型转换,如果对于值类型,则会导致不断拆箱装箱的过程,对系统消耗很大.(2)使用泛型时不需要通过object类进行装箱拆箱,使用的时候都会是确定的类型.(3)泛型的概念一开始是由集合引入,因为集合中的类型都是基于object类.可以在集合中使用泛型类.(4)泛型不仅仅用于集合,还可以用于委托.接口和方法.泛型的优点:高性能ArrayList list1 = new ArrayList();list1.…
1. 引言 jdk5.0中引入了Java泛型,目的是减少错误,并在类型上添加额外的抽象层. 本文将简要介绍Java中的泛型.泛型背后的目标以及如何使用泛型来提高代码的质量. 2. 为什么要用泛型? 设想一个场景,我们希望用Java创建一个列表来存储Integer:代码可能会写成这样: List list = new LinkedList(); list.add(new Integer(1)); Integer i = list.iterator().next(); 令人惊讶的是,编译器会提示最后…
1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为char *类型.B) 也很简单,与C)表达式相比,唯…
R语言类 R语言的类有S3类和S4类,S3类用的比较广,创建简单粗糙但是灵活,而S4类比较精细,具有跟C++一样严格的结构.这里我们主要讲S3类. S3类的结构 S3类内部是一个list,append某个list类名称,就能成为该类.list里面的内容就是我们所说的属性. 首先创建一个list me <- list(seq = "ATGC", length = nchar("ATGC")) me $seq [1] "ATGC" $lengt…
//二叉排序树 插入 (纯C语言实现) BTNode * BSTInsert2(BTNode *bt,int key){ //为什么纯C语言实现中 if(bt==NULL){ //要写成 bt->rchild=BSTInsert2(bt->lchild,key); bt = (BTNode*)malloc(sizeof(BTNode)); //而不是直接 BSTInsert2(bt->lchild,key);或者是 bt->lchild =bt ->rchild =NULL;…
内存这个大话题 key:心里一定要有内存的逻辑图. 程序是什么? 程序 = 代码 + 数据 代码放在Flash中代码段,可变的数据(全局变量.局部变量)放在内存中. 运行程序的目的是什么? 得到运行结果; 关注运行过程;既要结果又要过程; 为什么需要内存? 程序中有可变数据(全局变量.局部变量),这些可变数据就是放在内存中的. 内存如何管理? 每个内存单元都有唯一的地址,通过寻址来管理内存. 关键点 一个字节为一个内存单元,一个内存单元有一个内存地址. C语言是如何操作内存的? 定义变量时,编译…
Go 的原生数据类型可以分为基本类型和高级类型,基本类型主要包含 string, bool, int 及 float 系列,高级类型包含 struct,array/slice,map,chan, func .   相比 Java,Python,Javascript 等引用类型的语言,Golang 拥有类似C语言的指针这个相对古老的特性.但不同于 C 语言,Golang 的指针是单独的类型,而不是 C 语言中的 int 类型,而且也不能对指针做整数运算.从这一点看,Golang 的指针基本就是一种…
Java的泛型是JDK1.5时引入的.下面只是简单的介绍,不做深入的分析. Java的泛型是伪泛型.为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉.正确理解泛型概念的首要前提是理解类型擦出(type erasure). Java中的泛型基本上都是在编译器这个层次来实现的.在生成的Java字节码中是不包含泛型中的类型信息的.使用泛型的时候加上的类型参数,会在编译器在编译的时候去掉.这个过程就称为类型擦除. 如在代码中定义的List<Object>和List<…
由于上篇文章中提到WebMethod的Description 属性(propery)中可以使用超文本,因此就记录一篇关于超文本的文章以供参考,注意:Description=" HTML格式 "; 主要内容转自 https://deerchao.net/tutorials/html/html.htm 1.HTML是什么 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,它规定了自己的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接…
本文为原创,欢迎转发! 最近在研读C primer plus 5版中文版,老外写的,还是很经典的,推荐给读者们,有需要的朋友可以在这里购买:C primer plus 5版中文版 指针,传说中是C语言中的一个难点,且是难点中的难点.本文在教材的基础上,再详细地谈谈"指针"这个东东,力争让大家能理解它. 一.指针的概念 关于指针的定义,很多教材一般给出"它是一个地址","存储的是变量的地址","指向了一个值"等等描述.这样描述其…
1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: 1 2 3 A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为char *类型.B) 也很简单,与C)表…
对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #include <cstdio> #include <cstdlib> #include <cstring> #include <iostream> using namespace std; void func(){ printf("HelloWorld"…
1.typedef的定义 很多人认为typedef 是定义新的数据类型,这可能与这个关键字有关.本来嘛,type 是数据类型的意思:def(ine)是定义的意思,合起来就是定义数据类型啦. 不过很遗憾,这种理解是不正确的.也许这个关键字该被替换为“typerename”或是别的词. typedef 的真正意思是给一个已经存在的数据类型(注意:是类型不是变量)取一个别名,而非定义一个新的数据类型. 在实际项目中,为了方便,可能很多数据类型(尤其是结构体之类的自定义数据类型)需要我们重新取一个适用实…
static 一.概述 在c语言中static恰当的使用能让程序更加完美,细节上的严谨,代码会更好,也更利于程序的维护与扩展. 而static使用灵活,且又有两种完全无关的用法,所以整理总结一下. 二.static的两种用法: 1.static修饰局部变量,成为一个局部静态变量. 2.static修饰全局变量与函数,成为静态全局变量与静态函数. 三.相关涉及概念 可能会疑惑,修饰全局变量与修饰函数怎么会是一个用法? static涉及的东西也比较多,以下有几个概念需要明白. 1.什么是存储类 简单…
const是伪常量,无法用于数组的初始化和全局变量的初始化,本质就是限定一个变量不能直接赋值. 如以下代码: #define A 10 int arr[A]; //const本质,伪常量 ,无法用于数组初始化和全局变量初始化 /* const int B = 10; int arr[B]; */ 但是如果局部变量是能够初始化编译并运行的 void main() { ; int arr[B]; } const是伪常量,都知道常量是不能改变值的.例如这样是根本无法编译的. void main() {…
<指针>→*  | * < 指针> <直接声明符>  <标识符> | <直接声明>[]| <直接声明>[常量表达式] | <标识符>(参数表) | <标识符>() | <直接声明>,< 标识符列表> <标识符列表>:<标识符> | <标识符列表>,<标识符> <常量表达式>→<条件表达式> <参数列表>→…
<翻译单元>--><外部声明>--><函数定义>|<申报> <函数定义>--><声明说明符>--><声明符>--><申报>|<复合语句> <声明说明符>--><存储类说明符>|<类型说明符>|<类型限定符> <存储类说明符>-->"auto | register | static| ext…
关键的一句话:关键看谁调用self,self就属于谁 有3种情况: 1.在class或module的定义中,self代表这个class或者这个module对象,代码如下: class S puts 'Just started class S' puts self module M puts 'Nested module S::M' puts self end puts 'Back in the outer level of S' puts self end 输出结果: Just started…
原文出处:https://www.cnblogs.com/haore147/p/3647262.html 1.函数指针的定义 顾名思义,函数指针就是函数的指针.它是一个指针,指向一个函数.看例子: 1 2 3 A) char * (*fun1)(char * p1,char * p2); B) char * *fun2(char * p1,char * p2); C) char * fun3(char * p1,char * p2); 看看上面三个表达式分别是什么意思? C)这很容易,fun3是…