分类:c
linux系统编程

本文为"linux c编程一站式学习"一书的笔记 文件与I/O 再来一个hello world 我也来写一段汇编的hello world .data msg: .ascii "yuanhang zheng\n" len = . - msg .text .global _start _start: movl $len, %edx movl $msg, %ecx movl $1, %ebx #1 is stdout movl $4, %eax ...

阅读更多
Linux c编程一站式学习笔记:C语言基础

本文为"linux c编程一站式学习"一书的笔记 程序和编程语言 平台这个词有很多说法,可以指计算机体系结构,也可以指操作系统,也可以开发平台( 编译器,链接器等)。 机器语言称为第一代语言1GL,汇编为2GL,C/C++,JAVA,Python等称为3GL,目前已经有 了4GL和5GL,4GL以后的语言主要描述做什么,而不是一步步怎么做,SQL就是这样的。 思考题:解释执行的语言比编译执行的语言有什么优缺点? 优点 执行过程简单,不需要通过编译阶段,直接解释执行 缺点 速度慢,缺少编译阶段的优化 依赖平台 自然语言和形式语言 基本概念 自然语言...

阅读更多
Linux c编程一站式学习笔记:C语言本质

本文为"linux c编程一站式学习"一书的笔记 计算机中数的表示 二进制数表示法 LSB称为第0位而不是第1位,所以如果一个数是32位,则MSB称为第31位。 sign and magnitude表示法: 第一位为符号位,在做加法运算时,需要这样: 如果符号位相同,则符号位不变,其他位相加,在不溢出的情况下得到结果。 如果符号位不同,则先比较非符号位谁大,然后用大数减小数,最后符号位 和大数的相同,这样就保证了结果的正确性。 !!这种方法,效率低,而且0的表示不唯一,既可以表示为1000 0000也可以表示 为0000 0000 1's compleme...

阅读更多
c陷井和缺陷

本文为"c traps and pitfalls"一书的笔记 词法陷井 看下面的代码: y = x/*p; /* p points to the divisor */ 本意是x除以p指向的变量,而事实上这样写/*会认为是注释的开头。 所以,双目运算符两边加空格是非常好的。 语法陷井 !=的优先级要比&之类的逻辑运算符高,所以不要有下面的写法 if (flags & FLAG != 0) +号等运算符优先级要比[]{#和}的高,所以不要有下面的写法 r = h << 4 + 1 运算符优先级的记忆方法 优先级最高的是那些不...

阅读更多
复习C/C++

本文为《C笔试面试宝典》一书的笔记 new, delete, malloc, free的关系 new和delete是C++的运算符,new调用构造函数,delete调用析构函数。 delete和delete[]的区别 delete只会调用一次析构函数,delete[]则会调用每个成员的析构函数。 写程序一测: #include <iostream> #include <string> class Computer { private: std::string name; public: Comput...

阅读更多
C语言实现的矩阵类

随着学习的深入,数学是必不可少的,最近复习到矩阵,于是用我最喜欢的C语言写 了一个矩阵类,使用面向对象的方法,只实现了简单的操作:新建,删除,加,减, 乘,求幂,转置等,以后会再增加。 matrix.h #ifndef _MATRIX_H_ #define _MATRIX_H_ #include <stdio.h> #include <stdlib.h> //matrix element's type typedef double matrix_t; typedef struct matrix Matrix; struct matrix { int...

阅读更多