在windows中,void *是不确定类型,CL编译器无法确定其步长 但在linux中,void *默认步长是1…
有下面非常经典的一个字符串复制程序. test1.c #include <stdio.h> int main() { char str_t[]="This String comes from t";//初始化字符数组 char str_s[]="This is an empty string ";//初始化字符数组 char *t=str_t;//初始化字符指针 char *s=str_s;//初始化字符指针 while(*s++=*t++)//*的优先…
转自:http://blog.csdn.net/pbymw8iwm/article/details/8227839 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作. 1.简单的内嵌汇编 例: __asm__ __volatile__("hlt"); "__asm__"表示后面的…
2012-11-26 22:20 17958人阅读 评论(2) 收藏 举报  分类: linux(59)  架构管理(24)  C/C++(59)  目录(?)[+] 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作. 1.简单的内嵌汇编 例: __asm__ __volatile__("hlt")…
关于void*类型的用法(相当于OC中的id类型) 1.C++语言在对于void* 类型的使用很特别,因为void* 可以间接引用任何其他数据类型的指针,比如int*.float*甚至抽象数据类型的指针,而且可以从void* 强制转换为任何其他数据类型的指针,所以使用起来有时候会比较危险.如果开始将一个void*的指针间接引用一个float*的指针,然后将这个void*指针强制转化为一个int*类型的指针,编译器不会给出错误甚至警告,但是输出的数据却匪夷所思,如果再强制转换会float*则不会出…
序言 这本来是用Word写的,但是后来我换了系统所以只能用markdown迁移然后写了...... $\qquad$本文主要投食给那些在Windows下活了很久然后考试时发现需要用命令行来操作时困惑万分以及觉得GDB很好吃的人 $\qquad$以及---- $\qquad$经常眼瞎看不见i++和j++的区别 $\qquad$经常访问a[-1]然而使编译器无可奈何(除非在使用O2的情况下的明显访问越界)的人 ... $\qquad$正式地说,本文介绍GCC&&GDB命令在OI中的应用. 提要…
1. GCC的inlinegcc对C语言的inline做了自己的扩展,其行为与C99标准中的inline有较大的不同. 1.1. static inlineGCC的static inline定义很容易理解:你可以把它认为是一个static的函数,加上了inline的属性.这个函数大部分表现和普通的static函数一样,只 不过在调用这种函数的时候,gcc会在其调用处将其汇编码展开编译而不为这个函数生成独立的汇编码.除了以下几种情况外: 函数的地址被使用的时候.如通过函数指针对函数进行了间接调用.…
上一篇介绍了vc(windows)平台在x64体系当中,c函数的传参方式.本篇将要介绍gcc(类linux,mac)平台在x64中,c函数是如何传参的.为节约时间和篇幅,首先来定义一个有十个参数的函数,参数类型包罗了内嵌类型: int foo(char c, short s, int i, long l, long long ll, char* p, // 前6个参数,注意我的划分和参数类型 void** pp, float f, void* x, double d): 反汇编调用 foo(,…
本文转载自:http://blog.csdn.net/maopig/article/details/7230311 在源代码里面如果这样是定义的:#ifdef   MACRONAME//可选代码#endif 那在makefile里面gcc   -D   MACRONAME=MACRODEF或者gcc   -D   MACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了. 对于GCC编译器,有如下选项:        -D macro=string,等价于在头文件中定义:#d…
我怕我不写下来,将来我都不记得我还在 c 中嵌套过汇编语言,用汇编代码调用一个c函数的过程. 折腾了一下午,在网上查看相关的资料,然后照葫芦画瓢地在c代码中嵌套汇编,希望解决我所遇到的问题,可最后发现全是徒劳. 根据我的初步了解,在c中嵌套汇编来调用一个c函数的时候, 当c函数的参数过多时, 汇编代码没办法写, 好像对参数的数量有相当大的限制. 下面的代码,如果我将c函数的参数增加到3个时, 汇编代码我就写不出来了,  并不能通过简单的在汇编代码中增加一个参数来实现. 多增加一个参数,编译代码时…
在Ubuntu系统中使用 gcc 系列工具是在PC机上使用 arm-linux-gcc 编译的目标 是在 arm CPU上使用 一.安装交叉编译工具链 1. 编译工具怎么获取 1)从官网 http://mirror.hust.edu.cn/gnu/gcc/ 通过工具生成 http://crosstool-ng.org/download/crosstool-ng/ 2. 交叉编译工具安装 1)$ vi ~/.bashrc  最后一行 添加 export PATH=$PATH:/opt/gcc-4.…
1: sudo gcc -P -I. -I../instrument/stubs -I../instrument/stubs -I../ -E ctrl_xfer32.cc -o preprocessed.cc…
无意中发现的: C:\Users\my>gcc -vUsing built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=C:/Qt/Qt5.6.2/Tools/mingw492_32/bin/../libexec/gcc/i686-w64-mingw32/4.9.2/lto-wrapper.exeTarget: i686-w64-mingw32Configured with: ../../../src/gcc-4.9.2/configure --hos…
http://www.kuqin.com/article/23candcplusplus/586014.html 前两天看到有人求客户端socket 发HTTP包的代码,受flw版主启发找了一些perl的资料,不过对perl 还是不太熟悉.也没有深入的研究.无意中发现了libcurl.so 这个库.去google上搜索发现它是处理客户端发送HTTP请求的库 以及可以处理web服务器回送回来的包.研究了两天将研究的成果,共享出来给大家一起研究. 参考:http://curl.haxx.se/  这…
iotop毫无疑问linux IO检测上是一个很好的工具,但苦于要求和内核版本Python版本号.我的很多朋友放弃了.我也是.无意中发现iopp,使用c书面,与此iotop它是一个作用.nice! 一起分享 安装方法非常easy.首先复制以下源码保存为iopp.c文件 #include <stdio.h> #include <sys/types.h> #include <dirent.h> #include <ctype.h> #include <sy…
[简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站,于是有必要再探讨一遍. 事实上,这本不是什么漏洞,是 Flash 与生俱来的一个正常功能.但由于一些 Web 开发人员了解不够深入,忽视了该特性,从而埋下安全隐患. 原理 这一切还得从经典的授权操作说起: Security.allowDomain('*') 对于这行代码,或许都不陌生.尽管知道使用…
前言: 其实RxJava引起的内存泄漏是我无意中发现了,本来是想了解Retrofit与RxJava相结合中是如何通过适配器模式解决的,结果却发现了RxJava是会引起内存泄漏的,所有想着查找一下资料学习一下如何解决RxJava引起的内存泄漏,就查到了利用Rxlifecycle开源框架可以解决,今天周末就来学习一下如何使用Rxlifecycle. 引用泄漏的背景: RxJava作为一种响应式编程框架,是目前编程界网红,可谓是家喻户晓,其简洁的编码风格.易用易读的链式方法调用.强大的异步支持等使得R…
经过一周的时间没有分享文章了,主要是在使用.netcore做一个小的项目,项目面向大众用户的增删改查都做的差不多了,打算本周在云服务器上部署试试,很期待,也希望上线后大家多多支持:以上纯属个人废话,来一起看看今天的正篇环节: .继承IActionFilter来定义个验证登录的流程例子 .ActionFilter中怎么使用依赖注入 下面一步一个脚印的来分享: .继承IActionFilter来定义个验证登录的流程例子 首先,咋们定义一个名叫FilterTestController的Controll…
今天无意中发现C#这种完全面向对象的高级语言中也可以用不安全的指针类型,即要用到unsafe关键字.在公共语言运行库 (CLR) 中,不安全代码是指无法验证的代码.C# 中的不安全代码不一定是危险的,只是其安全性无法由 CLR 进行验证的代码.因此,CLR 只对在完全受信任的程序集中的不安全代码执行操作.如果使用不安全代码,由你负责确保你的代码不会引起安全风险或指针错误.unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的.可以在类型或成员的声明中使用 unsafe 修饰符…
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 jsp的常用标签有以下三个 <jsp:include>标签 <jsp:forward>标签 <jsp:param>标签 2.1.<jsp:include>标签 <jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容…
感谢@DiryBoy的补充,他提到这个问题在MSDN上是有说明的: http://msdn.microsoft.com/en-us/library/vstudio/hh678682.aspx 在Visual Basic.NET中,如果你写下类似下面的代码: Public Sub Test() For i = 0 To 100 Dim func = Function(x) x * i Next End Sub Visual Studio会给出一个警告,说在lambda表达式(即匿名函数)中直接使用…
--------------201507160917更新--------------- 无意中发现标准消息框在Windows7是有声音的,只是在Windows server 2008(R2)无声,而我用的刚好是后者,所以误以为是MessageBeep API在所有NT6系统都不工作造成~汗,有人在stackoverflow也提过这问题.但我仍然决定使用PlaySound API,不做修改 将声音处理交给ProcessIcon方法负责.之前考虑松耦合,所以将MessageBoxIcon和声音分开处…
阅读目录: 1.开篇介绍 2.尽量使用Lambda匿名函数调用代替反射调用(走进声明式设计) 3.被忽视的特性(Attribute)设计方式 4.扩展方法让你的对象如虎添翼(要学会使用扩展方法的设计思想) 5.别怕Static属性(很多人都怕Static在Service模式下的设计,其实要学会使用线程本地存储(ThreadStatic)) 6.泛型的协变与逆变(设计架构接口(Interface)时要时刻注意对象的协变.逆变) 7.使用泛型的类型推断(还在为参数类型烦恼吗) 8.链式编程(设计符合…
本文引用自: http://blog.chinaunix.net/uid-20726500-id-4820580.html 防止文章丢失才进行复制 PostgreSQL支持全文检索,其内置的缺省的分词解析器采用空格分词.因为中文的词语之间没有空格分割,所以这种方法并不适用于中文.要支持中文的全文检索需要额外的中文分词插件.网上查了下,可以给PG用的开源中文分词插件有两个:nlpbamboo和zhparser.但是nlpbamboo是托管在googlecode上的,而googlecode被封了,下…
基本知识 其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹的是, 这些概念经过了中文翻译后, 变得面目全非, 相同的一个术语, 在不同的翻译下, 含义总有着各种莫名其妙的差别. 鉴于此, 我在本章的开头, 着重为为大家介绍一个 Spring AOP 的各项术语的基本含义. 为了术语传达的准确性, 我在接下来的叙述中, 能使用英文术语的地方, 尽量使用英文. 什么是 AOP AOP(Aspect-Oriented Programming),…
原来在逛园子的时候一不小心发现了一个新概念“PhoneGap”简称PG,我一直都喜欢追逐新事物,自然就产生了好奇心.于是乎我就在百度上面Google了一下PhoneGap是什么东西.简单的说就是用另一种方式来开发Android应用程序,大体上用到HTML,CSS,JavaScript等一些网页技术.事情过去有一段时间,本来也忘了这件事,谁知无意中发现了一个特别好看的网站,而且我想把它运行在手机上面,也可以给其他小盆友们看看,遂用了半天时间来查阅资料,将环境搭建整齐,下面是我搭建环境的步骤简介.…
一,canvas元素 1 为了防止浏览器不支持canvas元素,我们设置“后备内容”(fallback content),下面紫色的字即为后备内容 <canvas id="canvas" width="600" height="300">您的浏览器不支持canvas,可以选择升级您的浏览器</canvas> 2 开发基于canvas的应用程序的最基本的几个操作 1),使用document.getElementById()方…
前言: 作为一个iOS开发,相信大家都会遇到类似于 “duplicate symbol” 的程序报错. 对于很多新手来说,可能会有点手足无措,因为这种类型的报错一般并非是代码的逻辑错误,大部分情况下是在编译过程出错导致的,因此相对来说排查不易.在前几天,我在引用了两个SDK的过程中出现了这个问题,运用不同的手段最终解决了这个问题.今天本文就这个错误进行一个详细的分析以及如何处理做一个探讨,如果有错误的地方还请指出. 一.duplicate symbol /undefind  symbol出现的原…
大家知道enode框架的架构是基于ddd+event sourcing的思想.我们持久化的不是聚合根的最新状态,而是聚合根产生的领域事件.最近我在思考如何实现一个基于文件的eventstore.目标有两个: 1.必须要高性能:2.支持聚合根事件的并发持久化,要确保单个聚合根实例不会保存版本号相同的事件: 事件持久化高性能 经过了一番调研,发现用文件存储事件非常合适.要确保高性能,我们可以顺序写文件(append),然后随机读文件.之所以要随机读文件是因为在当某些command由于操作同一个聚合根…
最近重新查看微软MvcMusicStore-v3.0的源代码,发现忽略了很多重要的东西,特别是数据访问那一部分. 首先Microsoft SQL Server Compact 4.0 详细的介绍和下载地址 链接:http://www.microsoft.com/zh-cn/download/details.aspx?id=17876 Microsoft SQL Server Compact 4.0 是一种免费的嵌入式数据库,软件开发人员可以使用它来构建 ASP.NET 网站和 Windows 桌…