当前位置: 首页 > C/C++
  • 探秘C stddef.h

    探秘C  stddef.h

    stddef.h 这个头文件里变包含的就是C 的标准定义。C标准委员会认为即使再一个独立的环境中,C语言也应当有它的用途,独立环境是一个由于种种原因而不能支持完整C标准库的环境。对于这样的实现只需要实现4个C语言的头文件就可以了,分别是:<float.h>   <limits.h>   <stdarg.h>  <stddef.h>.它 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 探秘C stdarg.h 实现自己的printf( )

    探秘C stdarg.h 实现自己的printf( )

    前言 最近一直再看C标准库的东西,今天看到了<stdarg.h> . __START C语言由一个非常强大的功能,就是它允许定义可接受一个可变参数列表的函数。 尽管C为了这个可变参数也一直在修改着自身的东西,现在基本稳定,现阶段主要是有一下一些宏来确定这些东西。 va_start  : 一个函数必须至少声明一个固定的参数。这个 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 探秘C-signal信号

    探秘C-signal信号

    探秘C程序中的信号 简单的不多说,也就不进行简单的介绍了。 可移植性: 首先对于<signal.h>中声明的函数不能完全的安全的定义一种可移植的用法,原则上,可以为一个只有raise报告的信号指定一个处理程序,但是很难想象它的那些方面比<setjmp.h>中的跳转函数做得更好,同时也不能保证一个指定的信号在C语言 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 探秘C函数栈帧—实现自己的setjmp/longjmp

    探秘C函数栈帧—实现自己的setjmp/longjmp

    前言 最近再看《C标准库》看到了setjmp和longjmp函数这里,所以就打算好好学习下C的函数栈帧。 __start 在标准C库中,它是通过汇编语言完成的,但是我们这里为了研究原理,所以用C 语言来完成这个库函数。 #include<stdio.h> #include<string.h> #define _JBFP 1 #define _JBMOV 60 #define _JBOFF 4 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • 探秘assert,h—(已放弃,核心已转储)

    探秘assert,h—(已放弃,核心已转储)

    深度探秘assert—(已放弃,核心已转储) 前言 前边一直再看内核的slab缓存,真是累如狗,但是它的体系是在是太复杂了,看来需要进一步总结,在这个过程中经常看到assert 断言这个东西,所以今天轻松一下,看看这个的底层实现。 __start 我使用的是glibc-2.18 还是挺新的,首先看一个例子,如果之前接触过C 的同学 ...

    阅读全文
    作者:root | 分类:C, C/C++
  • [原]C++类及使用 概念及易忽略点小结

    [原]C++类及使用 概念及易忽略点小结

    指定基本类型等价于完成三项工作:   @:决定数据对象需要的内存数量   @:决定如何解释内存中的位(long 和 float 在内存中占用的位相同,但是转换方法却不同)   @:决定可使用数据对象执行的操作或方法 C++ 中的类: 类规范有两个部分组成:     类声明:以数据成员的方式描述数据部分,以成员函 ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • [转]malloc 实现二维数组

    [转]malloc 实现二维数组

    #include <malloc.h> #include <stdio.h> int main() { int **a = malloc(sizeof(int)*3); a[0]= malloc(sizeof(int)*2); a[1]= malloc(sizeof(int)*2); a[2]= malloc(sizeof(int)*2); a[0][0] =1; a[0][1] =2; a[1][0] = ...

    阅读全文
    作者:root | 分类:C, C/C++
  • [原]java学习笔记–入门

    [原]java学习笔记–入门

                                          JAVA学习笔记   1     ——-认识JAVA 语言介绍: 简单,分布式,可移植,动态,高性能等特点,流行,发展迅速。         SE(标准),EE(企业),ME(移动终端)。        JDK:开发包,可以编译程序,包括(编译器,jar打包,Javadoc生成器,Debug ...

    阅读全文
    作者:root | 分类:cpp
  • [原]共享库C/C++

    [原]共享库C/C++

                                                共享库—共享对象的集合   1.产生原因 随着软件规模的越来越大,我们的函数越来越多,为了简化这些极为庞大的共享对象。所以就将这些函数根据相应的需求规划成一些集合,进行一些处理生成共享库文件,这样可以极大的减少函数的数量便于管理和升级。   2。共 ...

    阅读全文
    作者:root | 分类:C/C++, cpp
  • [原]动态链接详解

    [原]动态链接详解

                                                                                    动态链接  动态链接的诞生:   动态链接产生最主要的原因就是静态链接空间浪费过于巨大,更重要的是现阶段各种软件都是模块化开发,不同模块都是由不同厂商开发的,一旦一个模块发生改变,整个软件就需要重新编译(静态链接的 ...

    阅读全文
    作者:root | 分类:C, C/C++