`
jubincn
  • 浏览: 242670 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论
文章列表
来源:《C专家编程》 尽量使用的C++特性: 类。 构造函数和析构函数,但只限于函数体非常简单的例子。 重载,包括操作符重载和I/O。 单继承和多态。 避免使用的C++特性: 模板。 异常。 虚基类(virtual base class)。 多重继承。 就我个人而言,异常的简单使用也没问题,其它的都很赞成此书的看法。写过一年的C++,似乎也只用到了“尽量使用的C++特性”和异常。
《C专家编程》里的第六章介绍了一些有趣&有用的C语言工具。可能因为此书写成年代距今已远且目标为SunOS这个Unix系统,有些工具在我的Ubuntu中是无法使用的。因此我简单测试了一下,总结了这些能在我的Linux上用的工具。   用于检查源代码的工具 工具 位于何处 所做工作 indent sudo apt-get install indent C程序美化器,在源文件中运行这个过滤器,可以使源文件有标准的布局和缩进格式。 cflow sudo apt-get install cflow 打印程序中调用者/被调用者的关系 cscope ...
转自:http://blog.csdn.net/yearn520/article/details/6663265 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。 首先看看默认的一些core的参数,注意core file size是个0,程序出错时不会产生core文件了。 $ ulimit -acore file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file siz ...
转自:http://www.xxlinux.com/linux/article/development/shell/2006-07-16/2802.html 在Shell中有三种变量:系统变量,环境变量,用户变量。其中用户变量在编程过程中使用最多,系统变量在对参数判断和命令返回值判断会使用,环境变量主 ...
在每个bash脚本的开头都使用"#!",这用来告诉系统此文件的执行需要指定一个解释器。“#!”实际上是一个 2 字节的魔力数字,这是指定一个文件类型的特殊标记,换句话说, 在这里指是一个可执行的脚本(键入 man magic 来获得关于这个迷人话题的更多详细信息)。在“#!”之后接着是一个路径名,这个路径名指定了一个解释脚本中命令的程序,这个程序可以是 shell,其它编程语言或任意一个通用程序。这个指定的程序从头开始解释并且执行脚本中的命令(从#!行下边的一行开始),忽略注释。 如: #!/bin/sh #!/bin/bash #!/usr/bin/perl ...
刷机后一周未出现问题,最近几天发现无法打开数据连接,搜索了一下,解决方案如下: 设置 -- 无线和网络 -- 移动网络 -- GSM/UMTS选项 -- 接入点名称 -- 按“menu”键 -- 重置为默认设置 这个过程需要十几秒到几十秒的时间,我的android版本:2.2
我为什么喜欢编程
转自:《C专家编程》 1. 动态链接库的扩展名是“.so”,而静态链接库的扩展名是“.a” 2. 例如,你通过-lthread选项,告诉编译链接到libthread.so 换句话说,lib前缀和.so后缀都被省略了 3. 编译器期望在确定的目录找到库 一 ...
转自:http://blog.csdn.net/fpmystar/article/details/4183678 在进行linux测试时编写脚本是必不可少的,Shell脚本的名称可以随便定义,也不要什么后缀名,例如可以写abc,smartzip这类名称,运行时只要键入 ./smartzip就能运行脚本了。。 每 ...
记得研究生面试时,导师问过我数组和指针的不同,我没答上,十分紧张。后来专门查了一些资料,部分弄清了不同,但直到今天看了《C专家编程》,才对这两者的不同有了更深的了解。 指针有一个让人感到迷惑的性质,他存储的是一个地址,而自身又有一个地址,因此产生了“地址Y”和“地址Y的内容”之间的区别。编译器通过上下文来判断Y的具体含义,以下面这个赋值语句为例): X = Y; 在这个上下文环境里,X是左值,含义是”X所代表的地址“。左值在编译时可知,表示存储结果的地方。Y是右值,含义是”Y所代表的地址的内容“。右值只有在运行时才能直到,如无特殊说明,右值表示”Y的内容“。 ...
很久之前从网上下载的一篇文档,现在也忘记具体地址了,打算清一下电脑,贴在这里保存吧。 代码风格好不好就像字写得好不好看一样,如果一个公司招聘秘书,肯定不要字写得难看的,同理,代码风格糟糕的程序员肯定也 ...
操作系统:Windows XP 安装了新版本的AviBerry后,发现Aviberry Video Server Scheduler服务无法启动,提示信息是登录验证没通过。后来发现是密码输错了。 下面是关于如何修改密码的详细介绍: 开始 -- 运行 -- 输入"services.msc" -- 找到”Aviberry Video Server Scheduler“服务 -- 右键”属性“ -- ”登录“选项卡 -- 浏览 -- 输入Administrator,找到Administrator帐号 -- 输入对应的密码 -- 确定 这时再到”服务“里启动Aviberry ...
摘自:《C专家编程》 不要为了方便起见对结构使用typedef 这样做的唯一好处是使你不必书写”struct“关键字,但这个关键字可以向你提示一些信息,你不应该把它省掉。 typedef应该用在 数组、结构、指针以及函数的组合类型。 可移植类型。比如当你需要一种至少20bit的类型时,可以对它进行typedef操作typedef的提示声明。这样,当代码移植到不同的平台时,要选择正确的类型如short, int, long时,只要在typedef中进行修改就可以了,无需对每个声明都加以修改。 typedef也可以为后面的强制类型转换提供一个简单的名字,如: ...
A 声明从它的名字开始读取,然后按照优先级规则顺序读取 B 优先级从高到低依次是: B. 1 声明中被括号括起来的部分 B. 2 后缀操作符: 括号()表示这是一个函数,而 方括号[]表示这是一个数组 B. 3 前缀操作符:星号*表示 “指向...的指针” C 如果const和(或)volatile关键字的后面紧跟类型说明符(如int, long等),那么它作用于类型说明符。其它情况下,const和(或)volatile关键字作用于它紧邻的指针星号。 用上面的规则分析这个C语言声明: char * const *(*next ...
在C语言中,直接在参数中声明数组变量是无法实现传值传参的,这时只会把数组的首地址传过去。将数组放置到一个struct中进行传参,可以实现传值的方式。例如下面的程序: #include <stdio.h> struct tag {int a[100]}; struct tag orange, lime, lemon; struct tag twofold(struct tag s){ int i; for(i=0; i<100; i++){ s.a[i] *= 2; } return s; } int main(){ int i; for(i=0; i&l ...
Global site tag (gtag.js) - Google Analytics