
编程语言
gnudennis
用代码说话
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
结构体型的参数和返回值的C函数, GCC如何生成代码?
C代码与汇编代码有一点差别很大,即汇编语言程序设计中,各种数据类型之间的差别很小.汇编语言并没有提供诸如C语言结构体的抽象,它只是将C语言的结构体看成一个一个的元素. 本文探讨对于函数的参数和返回值有结构体型的函数, GCC是如何生成代码的? 通过分析代码,一方面探索GCC如何为C语言的结构体生成代码,另一方面, 分析C语言的函数调用过程和返回过程机制, 深入理解C语言函数调用的过程.原创 2012-11-22 20:21:14 · 4067 阅读 · 0 评论 -
C语言的类型系统-编码, 类型转换及其规范
C语言的类型系统—————— 汇编语言将存储器看成一个虚拟存储器,即将存储器看成一个大的字节数组,汇编语言并没有提供类型系统. C语言将字节数组抽象成不同长度的字节数组.本文介绍C语言的类型系统以及类型之间相互转换的原则. C语言的数据类型———— C语言的类型是相当丰富的,它提供多种类型. C语言的数据类型具体有:1.基本类型:整型(short原创 2012-11-20 15:52:31 · 2830 阅读 · 2 评论 -
判断C语言的算术运算越界问题
大量的安全漏洞是由于计算机算术运算的微妙细节引起的,具体的C语言,诸如符号数和无符号数之间转换,算术运算的越界都会导致不可预知的错误和安全漏洞,具体的案例数不胜数. 作为一个系统程序员,有必要对这些细节有深入的了解. 本篇参考csapp,主要介绍如何判断算术运算的越界问题(虽然本篇的代码经过大量的测试,但本人仍然无法保证代码的正确性,希望大家纠错).讲解的原则是"摆定理,不原创 2012-11-21 13:41:44 · 4815 阅读 · 0 评论