程序设计语言
脉清心爱
这个作者很懒,什么都没留下…
展开
-
关于Linux/kernel.h中的offsetof和container_of宏
一、位于Linux/kernel.h中#define offsetof(s,m) (size_t)&(((s *)0)->m)#define container_of(ptr, type, member) ({ \const typeof( ((type *)0)->member ) *__mptr = (ptr); \(type *)( (char *)__mptr -转载 2015-09-19 19:42:38 · 715 阅读 · 0 评论 -
对VC初学者的益言
预备知识: 1. VC是一门语言吗? VC不是一种语言,而是一种集成开发环境(IDE)。利用VC,可以把源程序编写、编译链接、调试运行等各个工作放在一块完成,很方便。如果你学过8086汇编语言,一定会对其令人吐血的运行和调试方式印象颇深:) .那么,我们在VC里用的是什么程序设计语言呢? 是 C++。 2.MFC是什么东东?VC和MFC有什么关系?转载 2016-11-28 15:17:32 · 362 阅读 · 0 评论 -
汇编语言编译器发展简史
======================================================================1977ASM86||1978 |||1979 |-CP/M-86 asm86 ||1980 |||1981 +-------------------------------------------------+||1982 |-MAS转载 2016-12-23 13:58:11 · 1696 阅读 · 0 评论 -
汇编语言集成开发环境略述
(一)编辑器(Editor) 编辑器是不可或缺的,而现在的编辑器也实在太多,在dos下你肯定用过经典的dos自带的edit,或者asmedit,wps等,然而现在平台已经转移到了Windows,我们的选择就更加丰富了,替代edit的是notepad,甚至有word,wps2000这样强大的文字处理工具,然而选择他们并不是写asm的最佳选择,因为他们并不是为a转载 2016-12-23 14:02:54 · 1418 阅读 · 0 评论 -
(转)单精度类型(float)和双精度类型(double)存储
C 语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范 的,float遵从的是IEEE R32.24 ,而转载 2016-12-25 17:15:20 · 4965 阅读 · 0 评论 -
C语言中%*s格式
1.在scanf中使用,则添加了*的部分会被忽略(跳过),不会被参数获取。 例如:int a,b;char b[10];scanf("%d%*s",&a,b); 输入为:12 abc 那么12将会读取到变量a中,但是后面的abc将在读取之后抛弃,不赋予任何变量(例如这里的字符数组b) 用*和扫描集配合,可以从输入中转载 2016-12-28 14:39:13 · 18145 阅读 · 1 评论 -
linux中shell脚本设置环境变量
linux中shell脚本设置环境变量 ——怎样用脚本来设置环境变量我想编一个脚本程序,用来对一组环境变量进行设置或取消但由于脚本程序对变量的设置在退出脚本后就消失了,有没有间接办法能够实现这个功能?你说的是 export ?在脚本中使用export, 好像只在脚本中有效,退出这个脚本,设置的变量就没有了在你的脚本中做设置在~/.pro转载 2016-12-28 16:13:11 · 12412 阅读 · 0 评论 -
linux shell “永久环境变量”、“临时环境变量”和普通变量之完全解读
这个年代, 大家写点书, 也无非就是为了搞点钱, 基本都是罗列一些知识点, 基本都是写给已经会了的人看的。 真正用心写书的人, 不多。 如果真正用心写书, 且站在读者的角度去写, 那就少之又少了。 关于linux shell环境变量, 我看了四本linux相关书的介绍, 结果, 没有一本书的讲解让我完全满意, 总感觉没有说清楚。所以呢, 我打算自己来写一下,如有不当指出,转载 2016-12-28 16:19:30 · 413 阅读 · 0 评论 -
变量在shell脚本间的传递
前几篇文章中已经介绍过局部变量和环境变量的含义,接下来我们来拓展下,看看变量怎样实现在shell脚本中的传递shell脚本其实是用当前shell的子shell去执行的,所以在shell脚本中定义的普通变量只适用于当前shell的子shell环境,也就是说在当前shell环境中不适用,也不适用于这个shell脚本的子shell。在shell脚本中定义的环境变量可以传承给它的子shell,但是也不转载 2016-12-28 16:34:41 · 1364 阅读 · 0 评论 -
编程领域的十一大发展趋势
摘要:从随处可见的JavaScript到无所不包的JVM,新工具、新技术以及新问题正改变着开发人员的日常工作方式. 根据我们各自的视角及对具体问题的切身感受,编程世界的发展到底是过快还是过慢在不同人的眼中会有不同的结论。但无论大家的关注重心是Cobol应用还是Node.js破解,有一项事实没人能够否认,即:程序员必须始终紧跟不断发展变化着的编程技术趋势,否则就无法保持自己在这一活跃领域中的转载 2016-12-28 21:44:46 · 705 阅读 · 0 评论 -
2011年Web开发领域回顾与展望
摘要:对Web开发者来说2011年无疑是“风景不错”的一年,HTML 5得到了Adobe与微软的认可、CSS 3也日益成熟、谷歌推出了新结构化编程语言Dart、等等。Web开发领域的发展让人惊喜不断,下面就让我们一起盘点。对Web开发者来说2011年无疑是“风景不错”的一年,HTML 5得到了Adobe与微软的认可、CSS 3也日益成熟、谷歌推出了新结构化编程语言Dart、转载 2016-12-28 22:08:13 · 552 阅读 · 0 评论 -
十种可能改变IT行业走向的编程语言
作为开发人员,我们真的还需要学习那么多的新型编程语言吗?现在所拥有的选择已经是相当的丰富,命令语言、函数语言、面向对象型语言、动态语言、编译语言、解释型语言以及脚本语言等等。这些身处业界前沿的编程语言为软件开发工作的未来提供了独到的解析视角。我们真的还需要那么多新型编程语言吗?当前开发人员们所拥有的选择无疑已经相当丰富。命令型语言、函数型语言、面向对象型语言、动态语言、编译语言解释转载 2016-12-30 22:37:40 · 2935 阅读 · 0 评论 -
2012年2月编程语言排行榜:用图形编程的LOGO语言
2012年2月6日,TIOBE发布了2012年2月编程语言排行榜。Objective-C延续上月的升势,占有率已然迈入7%的行列。而榜首的Java和C依旧占据头两位的名词。Python语言正在加速下跌,从去年的第四位跌至第八位。51CTO今天要向大家介绍的是排名18的LOGO语言。LOGO语言是设计师用的吗?如果你在搜索引擎里搜索LOGO这个词,出来最多的当然是好各大公司的转载 2017-01-01 14:49:17 · 2007 阅读 · 0 评论 -
硬件工程师的10个C语言技巧
硬件设计师最常见的工作内容是通过写代码来测试硬件。这10个C语言技巧(C语言仍然是常见的选择)可以帮助设计师避免因基础性错误而导致某些缺陷的产生并造成维护方面的困扰。 为了成功的推出一个产品,软件开发过程本身需要经历无数的实践风险和障碍。任何工程师最不希望的事情就是因所使用语言或工具而带来的挑战。因此,这就需要硬件设计师编写代码来测试硬件的工作状况,在资源受限的情况下,还需要转载 2017-01-22 16:04:24 · 693 阅读 · 0 评论 -
在C语言中用ASSERT调试的八个技巧
C语言中的ASSERT(断言)宏是嵌入式软件开发人员可以使用的最好的调试工具之一。虽然ASSERT功能强大,但我很少看到它被实施,并且在一些使用它的案例中,它的实施要么是有瑕疵的要么是不正确的。以下一些技巧将不仅能够帮助阐明在何时、何地使用ASSERT,而且还能阐明如何开始正确使用它。技巧1:记住ASSERT的定义对许多开发人员来说,断言是一个令人困惑的话题,因为它们的许多使用方式转载 2017-02-01 21:28:01 · 868 阅读 · 0 评论 -
用C编写一个my2DAlloc函数
用C编写一个my2DAlloc函数,可分配二维数组。将malloc函数的调用次数降到最少,并确保可通过arr[i][j]访问该内存。 解法: 大家都知道,二维数组本质上就是数组的数组。既然可以用指针访问数组,就可以用双重指针来创建二维数组。 基本思路是先创建一个一维指针数组。然后,为每个数组索引,再新建一个一维数组。这样就能得到一个二维数组,可转载 2017-06-04 18:11:01 · 580 阅读 · 1 评论 -
Visual Studio 2015设置栈大小
在编写程序时,有的程序在运行时,会耗大量的栈空间,比如有很多层的递归,则在编译过后,运行时程序会崩溃,在提示后,继续选择调试,则出现: “栈溢出”,这其实上因为Visual Studio 2015中默认设置的栈大小不够所致。可通过如下步骤,更改栈大小来解决。1. 点击菜单栏“项目”,点击如下图菜单项2. 点击“链接器”选项页,再展开到“系统”3. 在右面的“堆栈保留大小”中设置一个...原创 2018-03-15 21:31:34 · 21777 阅读 · 5 评论 -
Excel VBA
VBA是Visual Basic For Application的缩写,是VB在office中的运用。是基于Visual Basic For Windows发展而来的,VB For Windows是Microsoft于1992年推出的开发Windows应用程序的程序设计语言,由于其语法简单,易学易用,所以深受用户的欢迎。而VBA和VB For Windows大体相似。 在Offic转载 2016-11-28 13:54:29 · 713 阅读 · 0 评论 -
关于VC
VC基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大缺点是开发效率不高。 VC适用范围:1、 VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现一些底层 的调用。在VC里边嵌入汇编语言很简单。2、 VC主要用在驱动程转载 2016-11-27 13:53:50 · 394 阅读 · 0 评论 -
关于导出SDK时的向导设置
在Platform Build中,还可以为自己定制的平台导出特定的SDK,以便以后开发应用软件时使用。SDK是一系列头文件、库文件、文档、平台管理器和运行时库的总称。 Platform Build提供了SDK Wizard向导,来创建和生成SDK。通过依次选择Platform Build主菜单的Platform|SDK|New SDK...可打开SDK Wizard。转载 2016-11-23 13:11:14 · 332 阅读 · 0 评论 -
0长度数组
一、零长数组 在标准 C 或者 C++ 中由于不支持 0 长度的数组,所以 int array[0]; 这样的定义是非法的。不过有些编译器(如GCC)的扩展功能支持 0 长度的数组。 在 C 中,0 长度的数组的主要用途是用来作为结构体的最后一个成员,然后用它来访问此结构体对象之后的一段内存(通常是动态分配的内存)。由于其非标准性,在程序中尽量避免使用 0 长度的数组。转载 2015-09-20 16:10:45 · 636 阅读 · 0 评论 -
关于Servlet和JSP技术的概述
1.1 Servlet及其特点 Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资(更重要的是, Servlet程序员收入要比Perl程序员高:-): 高效 在传统的C转载 2016-11-03 13:23:53 · 790 阅读 · 0 评论 -
JSP/Servlet/JSF--Java异常框架设计
什么是异常? 异常(exception)应该是异常事件(exceptional event)的缩写。 异常定义:异常是一个在程序执行期间发生的事件,它中断正在执行的程序的正常的指令流。 当在一个方法中发生错误的时候,这个方法创建一个对象,并且把它传递给运行时系统。这个对象被叫做异常对象,它包含了有关错误的信息,这些信息包括错误的类型和在程序发生转载 2016-11-03 13:55:30 · 334 阅读 · 0 评论 -
MFC(微软基础类)
MFC,微软基础类(Microsoft Foundation Classes),实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinOS下开发人员使用的专业C++ SDK(SDK,Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包,MFC作为与VC++血肉相连的部分(注意C++和VC++的区别:C转载 2016-11-12 14:06:59 · 788 阅读 · 0 评论 -
Visual C++的程序设计两问题
Microsoft Visual C++是一种可视化编程语言,因功能强大而受到广大程序设计人员的青睐。但是,由于VC++的应用程序框架结构非常复杂,使得许多初学者望而却步。本文通过对设置视图背景颜色和改变对话框标题的几种实现方法的分析研究,揭示了VC++程序代码执行时的一些本质特征和有关的程序设计技巧,对理解MFC库的结构和Windows操作系统的内部工作方式提供了一定的帮助。一、设置视图转载 2016-11-16 20:04:12 · 262 阅读 · 0 评论 -
Visual C++改变窗口标题的几种方法
一、单文档接口(SDI)类型窗口标题的改变 首先,我们来看Windows SDI类型窗口标题栏的结构形式。结合具体例子说明:用VC的AppWizard创建一个名为“SDITitle”的单文档类型的工程,创建完工程后,编译运行该工程,程序主窗口标题形式如下: 文档标题—主窗口标题 1·文档标题的改变 文档标题在是由工程中相应的文档类所控制的,因此我们可以利用SetTi转载 2016-11-16 20:19:27 · 11224 阅读 · 0 评论 -
VC++编程时经常会遇到链接错误LNK2001
LNK2001错误,如: Linking... LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/A Keyboard.exe : fatal error LNK1120: 1 unresolved externals转载 2016-11-15 14:10:20 · 455 阅读 · 0 评论 -
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol
学习VC++时经常会遇到链接错误LNK2001,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。产生LNK2001错误的原因:一个是由于编码错误导致的LNK2001,在这不想详细说.另一个由于编译和链接的设置而造成的LNK2001.最经常发生的是:"LIBCD.lib(wincrt0.obj) : error LNK2001: u转载 2016-11-15 14:20:32 · 14895 阅读 · 0 评论 -
VC中MessageBox的常见用法
一、关于MessageBox 消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","标题"); 3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OK转载 2016-11-15 14:29:53 · 388 阅读 · 0 评论 -
消息分流器-HANDLE_MSG
windows消息分析器的实现很好理解,windows操作系统使用消息处理机制,那么,我们所设计的程序如何才能分辨和处理系统中的各种消息呢?这就是消息分析器的作用. 简单来说,消息分析器就是一段代码,在我的讲述中,将分7重来循序渐进的介绍它.从最初的第1重到最成熟的第7重,它的样子会有很大的变化.但,实现的功能都是一样的,所不同的,仅仅是变得更加简练罢了. 程转载 2016-11-19 12:51:15 · 356 阅读 · 0 评论 -
程序设计语言简史
程序设计语言诞生 1946冯·诺依曼提出了冯·诺依曼原理: CPU逐条从存储器中取出指令执行,按指令取出存储的数据经运算后送回。 数据和指令(存储地址码、操作码)都统一按二进制编码输入。数据值的改变是重新赋值,即强行改变数据存储槽的内容,所以说它是命令式的(imperative)。 第一台按冯·诺依曼原理制成的通转载 2016-12-03 16:53:31 · 4445 阅读 · 0 评论 -
程序设计语言的分类
1 按对机器依赖程度 (1) 低级语言 面向机器,用机器直接提供的地址码、操作码语义概念编程。机器语言和汇编语言,宏汇编虽然抽象层次逐渐提高仍属低级语言的汇编语言(如8086汇编,68000汇编)。 (2)高级语言 独立于机器,用语言提供的语义概念和支持的范型编程。如命令式(Pascal,C,Ada)、函数式(LISP,ML)、逻辑式(Prolog)、关系式(S转载 2016-12-03 16:57:29 · 4961 阅读 · 0 评论 -
VC++中的对话框资源
对话框是一种提供用户与应用程序交互的弹出式窗口。当用户单击菜单的某个菜单项(通常标题以“…”结尾)或者按钮时,会弹出一个对话框窗口,用户可以从中读取信息、写入文本内容、设置某些选项等。 对话框分为模态和非模态对话框两种。模态对话框最为常用,它不允许用户在关闭对话框之前切换到该应用程序的其他窗口;相反,非模态对话框则允许这样做。这是两种对话框最明显的区别。一、 模态对话框转载 2016-11-22 15:18:24 · 869 阅读 · 0 评论 -
智能手机开发语言和趋势
目前在智能手机开发领域,按照操作系统 来说,有三大平台:Symbian、Windows Mobile(以下简称Windows)、Linux 。Palm已经完全出局了,不需要再考虑。另外还有两大阵营:J2ME阵营(跨多种操作系统,包括Windows)和.NET CF阵营(只能运行在Windows上,以下简称.NET)。 这些平台上的开发语言包括: Symbian:C++、转载 2016-12-05 15:18:59 · 428 阅读 · 0 评论 -
Windows SDK
微软每推出一个重要的windows版本,一般都会同时推出一个SDK(Software Development Kit)。SDK包含了开发该windows版本所需的windows函数和常数定义、API函数说明文档、相关工具和示例。SDK一般使用C语言,但不包括编译器。高版本VC++包括了SDK所有的头文件、帮助、示例和工具,不需要再安装SDK,低版本如VC++5.0则需要安装SDK。从windows转载 2016-11-22 15:08:42 · 355 阅读 · 0 评论 -
Windows SDK应用程序窗口标题栏上显示自定义图标
本篇想通过手动直接编辑代码的方式(而不是可视化的方式)来操作使用自定义的图标。(以在窗口标题栏上显示自定义图标为例) 通过本篇,你将知道如何使用图标资源及实质,并有助于你理解在可视化方式编辑使用图标资源过程中的代码实质。 另外,可以触类旁通,明白VC中的Window应用程序对各种类似资源(如光标资源、位图资源、声音资源等)操作的一般机制。一、开始我们的思考:转载 2016-11-23 13:08:52 · 1379 阅读 · 0 评论 -
Visual Studio 2015设置命令行参数
在编程时,对于需要从命令行输入参数(即main(int argc, char *argv[])中接收的参数),调试程序时,执行调试前,需先设置一下需要输入的命令行参数,过程如下。1. 点击菜单栏“项目”,点击如下图菜单项2. 点击“调试”选项页3. 在右侧的“命令参数”中后面的值域里选中,显示出下拉菜单,如下选择“编辑”4. 点击按钮“宏(M)<<”,在搜索框中键入部分宏名,...原创 2018-03-04 00:44:25 · 11652 阅读 · 0 评论