c 语言变量类型注释

<p>1 数据类型关键字

A.基本数据类型(5个)</p><p>

void :声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果


char :字符型类型数据,属于整型数据的一种


int :整型数据,通常为编译器指定的机器字长


float :单精度浮点型数据,属于浮点数据的一种</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>

 

double :双精度浮点型数据,属于浮点数据的一种

 

 

 

B .类型修饰关键字(4个)



short :修饰int,短整型数据,可省略被修饰的int。

long :修饰int,长整形数据,可省略被修饰的int。



signed :修饰整型数据,有符号数据类型

 
unsigned :修饰整型数据,无符号数据类型



C .复杂类型关键字(5个)


struct :结构体声明



union :共用体声明


enum :枚举声明


typedef :声明类型别名


sizeof :得到特定类型或特定类型变量的大小


D .存储级别关键字(6个)



auto :指定为自动变量,由编译器自动分配及释放。通常在栈上分配



static :指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部



register :指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数

 

extern :指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。



const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)

volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值



2 流程控制关键字



A .跳转结构(4个)


return :用在函数体中,返回特定值(或者是void值,即不返回值)

continue :结束当前循环,开始下一轮循环

break :跳出当前循环或switch结构

goto :无条件跳转语句


 

B .分支结构(5个)



if :条件语句,后面不需要放分号



else :条件语句否定分支(与if连用)


switch :开关语句(多重分支语句)


case :开关语句中的分支标记


default :开关语句中的“其他”分支,可选。

 


C .循环结构(3个)


for:for 循环结构,for(1;2;3)4;的执行顺序为1->2->4->3->2...循环,其中2为循环条件。在整个for循环过 程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。


do :do循环结构,do 1 while(2); 的执行顺序是1->2->1...循环,2为循环条件

while :while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件</p>

阅读剩余部分 -

面向对象的程序设计 (OOP )

<p>面向对象的程序设计</p><p>所谓面向对象的程序设计,就是把面向对象的思想应用到软件工程中,并指导开发维护软件。
对象是由数据和容许的操作组成的封装体,所谓面向对象,就是基于对象的概念,以对象为中心,类和继承为构造机制,认识了解刻画客观世界以及开发出相应的软件系统。
面 向对象的程序设计(OOP)并不是刚刚提出来的,主要是由于C++和Java这类语言的传播,OOP最近才显得越来越重要了。为什么面向对象的设计如此流 行呢?从理论上讲,用面向对象的语言可以处理任何其他计算机语言所能完成的事情。然而当建立基于智能体的模型时,OOP对于开始的程序员和后来的程序读者 都表现出了很大的优势。</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>面向对象的程序设计特点
编程模型</p><p>所有计算机均由两种元素组成:代码和数据.精确的说,有些程序是围绕着"什么正在发生"而编写,有些则是围绕"谁正在受影响"而编写的.
第一种编程方式叫做"面向过程的模型",按这种模型编写的程序以一系列的线性步骤(代码)为特征,可被理解为作用于数据的代码.如 C 等过程化语言.
第二种编程方式叫做"面向对象的模型",按这种模型编写的程序围绕着程序的数据(对象)和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问.通过把控制权转移到数据上,面向对象的模型在组织方式上有:抽象,封装,继承和多态的好处.</p><p>抽象</p><p>面向对象程序设计的基本要素是抽象,程序员通过抽象来管理复杂性.
管 理抽象的有效方法是使用层次式的分类特性,这种方法允许用户根据物理含义分解一个复杂的系统,把它划分成更容易管理的块.例如,一个计算机系统是一个独立 的对象.而在计算机系统内部由几个子系统组成:显示器,键盘,硬盘驱动器,DVD-ROM,软盘,音响等,这些子系统每个又由专门的部件组成.关键是需要 使用层次抽象来管理计算机系统(或其他任何复杂系统)的复杂性.
面向对象程序设计的本质:这些抽象的对象可以被看作具体的实体,这些实体对用来告诉我们作什么的消息进行响应.
/ (我的理解)
计算机是一个实体,我要输入字符,显示器显示出来,那么
计算机(对象).输入(键盘属性).显示(显示方法)
使用分层来引用,操作.而不用管计算机内部如何处理.
只要有计算机对象,它就能响应我的操作,而我敲键盘,
计算机对象就把这个消息传给屏幕,屏幕显示.
*/
计算机对象包含了它所有的属性,以及操作,这就是面向对象程序设计的三大原则之一:封装.</p><p>封装</p><p>封 装是一种把代码和代码所操作的数据捆绑在一起,使这两者不受外界干扰和误用的机制.封装可被理解为一种用做保护的包装器,以防止代码和数据被包装器外部所 定义的其他代码任意访问.对包装器内部代码与数据的访问通过一个明确定义的接口来控制.封装代码的好处是每个人都知道怎样访问代码,进而无需考虑实现细节 就能直接使用它,同时不用担心不可预料的副作用.
在JAVA中,最基本的封装单元是类,一个类定义着将由一组对象所共享的行为(数据和代码).一个类的每个对象均包含它所定义的结构与行为,这些对象就好象是一个模子铸造出来的.所以对象也叫做类的实例.
在定义一个类时,需要指定构成该类的代码与数据.特别是,类所定义的对象叫做成员变量或实例变量.操作数据的代码叫做成员方法.方法定义怎样使用成员变量,这意味着类的行为和接口要由操作实例数据的方法来定义.
由于类的用途是封装复杂性,所以类的内部有隐藏实现复杂性的机制.所以JAVA中提供了私有和公有的访问模式,类的公有接口代表外部的用户应该知道或可以知道的每件东西.私有的方法数据只能通过该类的成员代码来访问.这就可以确保不会发生不希望的事情.</p><p>继承</p><p>继 承是指一个对象从另一个对象中获得属性的过程.是面向对象程序设计的 三大原则之二,它支持按层次分类的概念.例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明 确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为唯一的 各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层 次中的每个祖先的所有属性.
继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.</p><p>多态</p><p>多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.</p><p>封装,继承,多态的组合使用</p><p>在由封装,继承,多态所组成的环境中,程序员可以编写出比面向过程模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车
从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是菲亚特牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与自动档之间的差别,因为他们实际上都知道这两者的共同超类:传动装置.
从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能操作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.
从多态的角度看,刹车系统有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).
这样各个独立的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序</p>

阅读剩余部分 -

AS3、Flex循环调用一个对象的属性、方法

<p>当一个类有很多名称相似的属性(如prop1,prop2,prop3……),或是有很多名称相似的方法(如fun1,fun2,func3……),那么如何用一个for()循环循环调用这些属性和方法呢?</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>    可以用如下的方法实现:</p><p>package {
    import flash.display.Sprite;

    public class Test extends Sprite
    {
        private var prop1:String = "foo";
        private var prop2:String = "bar";
        public function Test():void
        {       
            for (var i:int=1; i<3; i++)
            {
                trace(this["prop"+i]);
            }
            for (var j:int=1; j<3; j++)
            {
                this["fun"+j].apply(this, [j,"字串"+j]);
            }
        }
        private function fun1(i:int, str:String):void
        {
            trace("fun1被调用!");
            trace(i);
            trace(str);
        }
        private function fun2(i:int, str:String):void
        {
            trace("fun2被调用!");
            trace(i);
            trace(str);
        }
    }
}</p><p>      </p><p>输出结果:</p><p>foo
bar
fun1被调用!
1
字串1
fun2被调用!
2
字串2</p><p> </p><p>    如果要循环调用其它类对象的属性、方法,比如在类Test中循环调用类Test2实例对象的属性、方法。可以用下面的方法实现:</p><p>Test.as</p><p>package {
    import flash.display.Sprite;

    public class Test extends Sprite
    {
        
        public function Test():void
        {        
            var test2:Test2 = new Test2();
            for (var i:int=1; i<3; i++)
            {
                trace(test2["prop"+i]);
            }
            for (var j:int=1; j<3; j++)
            {
                test2["fun"+j].apply(test2, [j,"字串"+j]);
            }
        }
    }
}</p><p>Test2.as</p><p>package
{
    public class Test2
    {
        public var prop1:String = "test2中的foo";
        public var prop2:String = "test2中的bar";
        public function Test2():void
        {        
        }
        public function fun1(i:int, str:String):void
        {
            trace("test2中的fun1被调用!");
            trace(i);
            trace(str);
        }
        public function fun2(i:int, str:String):void
        {
            trace("test2中的fun2被调用!");
            trace(i);
            trace(str);
        }
    }
}</p><p>输出结果:</p><p>test2中的foo
test2中的bar
test2中的fun1被调用!
1
字串1
test2中的fun2被调用!
2
字串2</p>

阅读剩余部分 -

Flash builder 4.6 无需序列号破解方法

<div><p>本方法是针对修改host文件,并且输入的序列号无效的办法... 如果你安装修改了host以及序列号之后没问题 , 那就不建议用这样的办法了 ...</p><p>
具体步骤如下:
1.到Adobe官网下载FlashBuilder 4.6,有简体中文版;</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>

语言:简体中文(Simplified)
http://trials3.adobe.com/AdobeProducts/FLBR/4_6/win32/FlashBuilder_4_6_LS10.exe

2.安装时,不用序列号,直接选择安装试用版;

3.安装完成后在安装目录下依次修改下列3个文件:

(1).eclipsepluginscom.adobe.flexbuilder.project_4.6.0.328916META-INF下面的MANIFEST.MF修改:

Bundle-Version: 0.0.0

(2).eclipsefeaturescom.adobe.flexide.feature_4.6.0.328916下面的feature.xml修改:

<plugin
         id="com.adobe.flexbuilder.project"
         download-size="0"
         install-size="0"
         version="0.0.0"/>

(3).eclipsepluginscom.adobe.flexbuilder.flex_4.6.0.328916下面:

复制config.xml并重命名为config_builder.xml

注:以上紫色文字部分为具体的版本号,请跟据实际版本号进行查找

修改完成之后,再启动Adobe Flash Builder 4.6,恭喜你,你会发现自己彻底拥有了这款RIA工具了。

建议  :序列号不行的情况下用这种办法</p></div>

阅读剩余部分 -

Sublime Text 使用介绍

<div><p>如果说Notepad++是一款不错Code神器,那么Sublime Text应当称得上是神器滴哥。Sublime Text最大的优点就是跨平台,Mac和Windows均可完美使用;其次是强大的插件支持,几乎无所不能。</p><p></p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><h2>开始使用Sublime Text:</h2><p>Sublime Text有Dev版本,推荐使用,下载地址,一般推荐下载便携版本(Portable version),这样拿来拿去很方便,也不用安装,而且插件和主体在一个目录下,便携。</p><h2>Sublime Text快捷键:</h2><ul> <li>Ctrl+Shift+P:打开命令面板</li> <li>Ctrl+P:搜索项目中的文件</li> <li>Ctrl+G:跳转到第几行</li> <li>Ctrl+W:关闭当前打开文件</li> <li>Ctrl+Shift+W:关闭所有打开文件</li> <li>Ctrl+Shift+V:粘贴并格式化</li> <li>Ctrl+D:选择单词,重复可增加选择下一个相同的单词</li> <li>Ctrl+L:选择行,重复可依次增加选择下一行</li> <li> <div>Ctrl+Shift+L:选择多行</div> </li> <li>Ctrl+Shift+Enter:在当前行前插入新行</li> <li>Ctrl+X:删除当前行</li> <li>Ctrl+M:跳转到对应括号</li> <li>Ctrl+U:软撤销,撤销光标位置</li> <li>Ctrl+J:选择标签内容</li> <li>Ctrl+F:查找内容</li> <li>Ctrl+Shift+F:查找并替换</li> <li>Ctrl+H:替换</li> <li>Ctrl+R:前往 method</li> <li>Ctrl+N:新建窗口</li> <li>Ctrl+K+B:开关侧栏</li> <li>Ctrl+Shift+M:选中当前括号内容,重复可选着括号本身</li> <li>Ctrl+F2:设置/删除标记</li> <li>Ctrl+/:注释当前行</li> <li>Ctrl+Shift+/:当前位置插入注释</li> <li>Ctrl+Alt+/:块注释,并Focus到首行,写注释说明用的</li> <li>Ctrl+Shift+A:选择当前标签前后,修改标签用的</li> <li>F11:全屏</li> <li>Shift+F11:全屏免打扰模式,只编辑当前文件</li> <li>Alt+F3:选择所有相同的词</li> <li>Alt+.:闭合标签</li> <li>Alt+Shift+数字:分屏显示</li> <li>Alt+数字:切换打开第N个文件</li> <li>Shift+右键拖动:光标多不,用来更改或插入列内容</li> <li>鼠标的前进后退键可切换Tab文件</li> <li>按Ctrl,依次点击或选取,可需要编辑的多个位置</li> <li>按Ctrl+Shift+上下键,可替换行</li></ul><h2>Sublime Text 设置:</h2><ul> <li>Setting User
以下是浩子使用的 <pre>{ "font_face": "courier new", "font_size": 9.0, "highlight_line": true, "scroll_past_end": false, "tab_size": 4, "theme": "Soda Dark.sublime-theme", "word_wrap": true}</pre> </li></ul><h2>Sublime Text插件:</h2><p>建议先启用Package Control,作用是安装插件时很方便,启用方法:菜单栏 – View – Show Console,贴入以下代码并回车,然后重启Sublime。如果你所在的网络无法启用,则无法使用,手动搜索下载去吧(话说你的网也被封了?)。</p><pre>import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/';+pf.replace(' ','%20')).read())</pre><p>开始安装一些非常实用的插件吧,Ctrl+Shift+P(菜单 – Tools – Command Paletter),输入 install 选中Install Package并回车,输入或选择你需要的插件回车就安装了(注意左下角的小文字变化,会提示安装成功),安装其它插件也是这个方法,非常快速。</p><ul> <li>ZenCoding
不得不用的一款前端开发方面的插件,Write less , show more.安装后可直接使用,Tab键触发,Alt+Shift+W是个代码机器。</li> <li>Alignment
代码对齐,如写几个变量,选中这几行,Ctrl+Alt+A,哇,齐了。</li> <li>Prefixr
写 CSS可自动添加 -webkit 等私有词缀,Ctrl+Alt+X触发。</li> <li>Tag
Html格式化,右键Auto-Format Tags on Ducument。</li> <li>Clipboard History
剪贴板历史记录,显示更多历史复制,Ctrl+Shift+V触发。</li> <li>SideBarEnhancements
侧栏右键功能增强,非常实用</li> <li>Theme – Soda
完美的编码主题,用过的都说好,Setting user里面添加”theme”: “Soda Dark.sublime-theme”</li> <li>GBK to UTF8
将文件编码从GBK转黄成UTF8,菜单 – File里面找</li> <li>SFTP
直接编辑 FTP 或 SFTP 服务器上的文件,绝对FTP浮云</li> <li>WordPress
集成一些WordPress的函数,对于像我这种经常要写WP模版和插件的人特别有用</li> <li>PHPTidy
整理排版PHP代码</li> <li>YUI Compressor
压缩JS和CSS文件</li></ul></div>

阅读剩余部分 -

VMware Workstation v9.0.0 完美汉化注册版下载

<div><p>VMware Workstation是著名的VM虚拟机系统。虚拟机是独立运行主机操作系统的离散环境</p><p>
VMware Workstation 9.0 更新内容如下:

1.Easy Install完美支持Windows 8/Metro;

2.画面渲染升级,带来更多特性,更快更精准;

3.Linux下的OpenGL支持;

4.保护自己的虚拟机不被修改,可以设置密码保护;

5.带来全新的基于Html5技术的WSX,使得可以在移动设备上访问自己创建的虚拟机;

6.完美支持USB 3.0</p><div style="page-break-after: always;"><span style="display: none;"><!--more-->& nbsp ;</span></div><p>

VMware Workstation 9.0 key :

以下 序列号 来源于网络,仅供测试使用:

JV695-DR0D3-LZUC0-H8852-CAWJ4

4F297-84H0M-MZN18-X207P-ACQLQ

VMware Workstation 9 汉化方法:

1.使用任务管理器将VMware Workstation所有进程结束;

2.将解压后得到的“VMware 9 汉化包”文件夹的所有文件替换源文件(32 or 64自行选择)

下载官方英文版再使用以上方法汉化。为了让大家不用麻烦,已经把VMware9官方安装包和VMware 9 汉化包集成在安装包里面,压缩包内附带注册机</p><p>双线下载链接地址</p></div>

阅读剩余部分 -

轻设计,让网站灵敏轻便的6个技巧

在网站或软件的策划和设计过程中,我们经常听到这样的讨论:“这个功能设计得太重了”又或“我们希望能够处理得轻一些”。似乎轻设计是时下炙手可热 的话题,也是方兴未艾的Web2.0大浪下设计师们的最爱(看看那些在全世界遍地开花的SNS网站,无论是视觉元素还是交互流程均能轻则轻)。本文主要从 实践和总结的角度出发,提出了让设计变得更轻的6个技巧。

阅读剩余部分 -

准“扁平化设计”

扁平化设计在当下的用户界面设计界是很有争议的,微软的 Metro 风最早将其介绍给大众,之后有了很多人跟风,比如LayerVault、 The Next Web以及更多。许多设计师从最开始就不看好这类设计,主要是因为在稍微复杂一点的界面中,扁平化设计会带来很多困扰。 

扁平化设计既漂亮又清新,设计起来快,也更容易响应。如果只是绘画上的设计趋向可能会被广为接受,但是网页设计者总是对易用性持有很高的关注度,因此总会觉得扁平化设计天然的就有缺陷。

阅读剩余部分 -

随机文章

最近回复

分类

其它

友情连接

推广链接