动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息

本月文章推荐
.C++入门解惑——初探指针.
.实现C语言高效编程的四大秘技.
.可怜的Bool——浅析程序可扩展性.
.C++ Builder 初学问与答(七).
.CGI编程的安全性 -- 文件名.
.Snake.Net中的ORM(三).
.C语言初学者入门讲座 第四讲 运算.
.C语言基础教程(一)基础篇.
.类的分解,抽象类与纯虚函数的需.
.图文例解C++类的多重继承与虚拟继.
.C语言库函数(M类字母).
.C语言编程技巧汇萃(下).
.MINI-FOOLFLY 游戏代码.
.x86内联汇编.
.霍夫曼树编码的实现.
.VC中借助DirectDraw实现水波的模.
.使用Windows虚拟设备驱动程序(Vx.
.为C++标准库容器写自己的内存分配.
.PE文件格式详解(4).
.C语言的结构和C++类的异同.

C语言编程常见问题解答之ANSI/ISO标准

发表日期:2008-3-8 |


    假如你不理解C语言标准的价值,你就不会知道你是怎样地幸运。
    一个C程序员会期望一个C程序无论是在哪里开发的,在另一个编译程序中都能通过编译。实际上不能完全做到这一点,因为许多头文件和函数库都是针对某些特定的编译程序或平台的。有些(很少!)语言扩充性能,例如基于Intel的编译程序所使用的near和far要害字以及寄存器伪变量,也只不过是某种平台的开发商们所认可的一种标准。
    假如你认为靠一种标准走遍天下是理所当然的,就象左脚踩加速器,右脚踩刹车一样,那么你的视野未免有些狭窄。有两种不同的BASIC标准,但都没有得到广泛的支持;世界上最流行的Pascal编译程序并不符合正式的标准;现在正在发展的C++标准,由于变化太快,也没有得到广泛的支持;有些实现遵循一种严格的Ada标准,但Ada标准也没能大规模地占领世界市场。
    从技术上讲有两种C语言标准,一种来自ANSI(American National Standard Institute,美国国家标准协会)X3J11委员会,另一种来自ISO(International Standard Organization,国际标准协会)9899—1990。由于ISO标准中的某些改进优于ANSI标准,而ANSI标准也接受了这个国际版本,因此"ANSI/ISO标准”是一种正确的说法。
    那么,这种标准对你有什么帮助呢?你可以买到一份该标准的副本,即Herbert Schildt所著的((The Annotated ANSI C Standard》(Osborne McGraw-Hill出版,ISBN O-07-881952-O)一书,该书对语言和库都作了介绍,并带有注释。这本书比大多数正式标准要便宜多了,后者由ANSI和ISO出售,以解决建立标准所需的部分费用。并不是每一个C程序员都需要这样一本书,但它是最权威的。
    最重要的一点是,ANSI/ISO标准是对“什么是c?”这一问题的权威解答。假如编译程序开发商所做的某些实现不符合这一标准,你可以把它作为错误指出来,这不会引起争论。
    ANSI/ISO标准也不是包罗万象的。具体地说,它没有涉及c程序可能会做的许多有趣的事情,例如图形或多任务。许多兼容性不强的标准包含了这些内容,其中的一些将来可能会成为权威的标准,因此你不必完全拘泥于ANSI/ISO标准。
    顺便提一句,除编程语言之外,还有许多东西也有ANSI标准,其中的一种就是ANSI为全屏幕文本操作的退出序列集合而写的标准,在第17章中所介绍的MS—DOS的"ANSI驱动程序”指的就是这种标准(有趣的是,MS-DOS的ANSI.SYS只实现了ANSI标准序列中的一小部分)。

    16.1  运算符的优先级总能起作用吗?
    有关运算符优先级的规则稍微有点复杂。在大多数情况下,这些规则确实是你所需要的,然而,有人也指出其中的一些规则本来是可以设计得更好的。
    让我们快速地回顾一些有关内容:“运算符优先级”是这样一些规则的集合——这些规则规定了“运算符”(例如+,-,等等)的优先性,即哪一种运算符先参加运算。在数学中,表达式“2×3+4×5”和“(2×3)+(4×5)”是等价的,因为乘法运算在加法运算之前进行,也就是说乘法的优先级比加法高。
    在c中,有16级以上的运算符优先级。尽管这么多的规则有时使c程序不易阅读,但也使C程序写起来轻易多了。虽然这不是唯一的一种折衷方法,但这就是C所采用的方法。表16.1总结了运算符的优先级。            表16.1 运算符优先级总结(从高到低)
----------------------------------------------------------------------------------
  优先级            运算符
----------------------------------------------------------------------------------
  1                x[y](下标)
                   x(y)(函数调用)
                   x.y(访问成员)
                  x->y(访问成员指针)
                   x++(后缀自增)
                   x--(后缀自减)--
    2             ++x(自增)
                   --x(自减)
                  &x(取地址)
                   *x(指针引用)
                  +x(同x,和数学中相同)
                  -x(数学求负)
                  !x(逻辑非)
                  ~x(按位求反)
                   sizeof x和sizeof(x_t)(字节数大小)
   3               (x_t)y(强制类型转换)
   4              x*y(乘法)
                   x/y(除法)
                   x%y(求余)
   5              x+y(加法)
                   x-y(减法)
   6              x<<y(按位左移)
                   x>>y(按位右移)
    7              x<y,x>y,x<=y,x>=y(关系比较)
    8             x==y,x!=y(相等比较)
    9              x&y(按位与)
    10             x^y(按位异或)  .
    11             x y(按位或)
    12            x&&y(逻辑与)
    13             xy(逻辑或)
    14             x?y:z(条件)
                  x=y,x*=y,x/=y,x+=y,x-=y,<<=,>>=,&=,^=,=(赋值,右结合性)
    16    x,y(逗号)
--------------------------------------------------------------------------------------
    优先级最高的是后缀表达式,即运算符跟在一个表达式后面;其次是前缀或单目表达式,即运算符位于一个表达式的前面;再次是强制类型转换表达式。
    注重:关于运算符优先级,最重要的是知道*p++和*(p++)是等价的。也就是说,在*p++中,++运算符作用在指针上,而不是作用在指针所指向的对象上。象“*p++=*q++;这样的代码在C中是随处可见的,其中的优先级和“(*(p++))=(*(q++))”中的是相同的。这个表达式的含义是“q+1,但仍用q原来的值找到q所指向的对象;p加1,但仍用p原来的值;把q所指向的对象赋给p所指向的对象”,整个表达式的值就是原来q所指向的对象。在C中你会经常看到这样的代码,并且你会有许多机会去写这样的代码。对于其它运算符,假如你记不住其优先级,

上一篇:PCI 人气:519
下一篇:C语言EXPORT_SYMBOL_(INTERNAL and/or GPL) 人气:392
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成