搜索
bottom↓
回复: 134

C语言的好资料

  [复制链接]

出0入0汤圆

发表于 2014-9-5 18:32:17 | 显示全部楼层 |阅读模式
大家在用各种单片机的时候,有无注重自己的C语言的要求呢? 有无规范呢?在移植不同处理器的时候吃力不?  看来掌握好C的基本功夫是少不了的啊, 有时间温习一下也无妨的,呵呵































本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-9-5 18:44:18 | 显示全部楼层
资料不错,都往这个版块发!!

出0入0汤圆

 楼主| 发表于 2014-9-5 18:45:33 | 显示全部楼层
sdlibin007 发表于 2014-9-5 18:44
资料不错,都往这个版块发!!

想问问,你在编程的时候,有无用结构体,指针那些的啊?

出0入0汤圆

发表于 2014-9-5 18:47:43 | 显示全部楼层
不错,对于C来说资料已经很全了

出0入0汤圆

发表于 2014-9-5 18:48:40 | 显示全部楼层
taojie 发表于 2014-9-5 18:45
想问问,你在编程的时候,有无用结构体,指针那些的啊?

呵呵O(∩_∩)O~

出0入0汤圆

发表于 2014-9-5 18:58:55 | 显示全部楼层
yzb1019 发表于 2014-9-5 18:47
不错,对于C来说资料已经很全了

           

出0入0汤圆

发表于 2014-9-5 19:05:34 | 显示全部楼层
本帖最后由 sunrundong 于 2014-9-5 23:50 编辑

谭浩强的也有原书的电子书,之前找到的都是幻灯片的pdf版!

出0入0汤圆

发表于 2014-9-5 19:07:40 | 显示全部楼层
原来谭浩强的c语言也有电子版的啊  

出0入0汤圆

发表于 2014-9-5 19:07:41 | 显示全部楼层
好好学习下

出0入0汤圆

发表于 2014-9-5 19:36:17 | 显示全部楼层
谢谢分享!mark!

出0入0汤圆

发表于 2014-9-5 19:37:13 | 显示全部楼层
楼主这是为了飞币啊

出0入0汤圆

发表于 2014-9-5 20:20:59 | 显示全部楼层
这么多啊,

出0入0汤圆

发表于 2014-9-5 21:15:21 | 显示全部楼层
taojie 发表于 2014-9-5 18:45
想问问,你在编程的时候,有无用结构体,指针那些的啊?

结构体和指针很多地方都在用,当然了,不用也可以,但用起来会使程序更容易理解
用结构体时,注意对齐的问题

出0入0汤圆

发表于 2014-9-5 22:51:59 | 显示全部楼层
wxfje 发表于 2014-9-5 21:15
结构体和指针很多地方都在用,当然了,不用也可以,但用起来会使程序更容易理解
用结构体时,注意对齐的 ...

结构体对齐啥意思?
什么四字节的对齐吗?

出0入0汤圆

发表于 2014-9-5 23:26:47 | 显示全部楼层
gujiamao_love 发表于 2014-9-5 22:51
结构体对齐啥意思?
什么四字节的对齐吗?

贴片文章,你慢慢看,这块知识点其实不难的,就是有点浪费内存





1. 概述
    本文讨论了结构的自然边界对齐,在缺省情况下,c编译器为每一个变量或数据单元按其自然边界对齐条件分配空间。
    但可以通过四种方法来更改C编译器的缺省字节对齐方式,即可以指定边界对齐。
   
    在阅读完本文档后,将会更深入地了解一个结构的sizeof到底应当是多少。

2. 自然边界对齐
    在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。

    结构字节对齐有以下几个特点:
    1. 对于结构体,编译器会自动进行成员变量的对齐,以提高运算效率。
       缺省情况下,编译器为结构的每个成员按其自然边界对齐( natural alignment)条件分配空间。
       自然边界对齐即为默认对齐方式。

    2. 各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。

    3. 结构整体的默认对齐方式就是它的所有成员使用的对齐参数中最大的一个。

    4. 结构整体长度的计算必须取所用过的所有对齐参数的整数倍,不够补空字节;
       也就是取所用过的所有对齐参数中最大的那个值的整数倍,因为对齐参数都是2的n次方;
       这样在处理数组时可以保证每一项都边界对齐;

    例如,下面的结构各成员空间分配情况:
    struct test
    {
        char  x1;
        short x2;
        float x3;
        char  x4;
    };
    结构的第一个成员x1,其偏移地址为0,占据了第1个字节。
    第二个成员x2为short类型,其起始地址必须2字节边界对齐,因此,编译器在x2和x1之间填充了一个空字节。
    结构的第三个成员x3和第四个成员x4恰好落在其自然边界对齐地址上,在它们前面不需要额外的填充字节。
    在test结构中,成员x3要求4字节边界对齐,是该结构所有成员中要求的最大边界对齐单元,因而test结构的自然边界对齐条件为4字节,编译器在成员x4后面填充了3个空字节。整个结构所占据空间为12字节。

3. 指定边界对齐
   在缺省情况下,c编译器为每一个变量或数据单元按其自然边界对齐条件分配空间;但可以通过下面四种方法来更改C编译器的缺省字节对齐方式:

方法1: 使用#pragma pack
     #pragma pack说明:
     1. pack提供数据声明级别的控制,对定义不起作用;
     2. 调用pack时不指定参数,将恢复C编译器的缺省字节对齐方式,即使用伪指令#pragma pack()将取消自定义字节对齐方式;
     3. 一旦改变数据类型的alignment,直接效果就是占用memory的减少,但是performance可能会下降;
   
    #pragma pack语法详细说明:
    1. show:可选参数;显示当前packing aligment的字节数,以warning message的形式被显示;
    2. push:可选参数;将当前指定的packing alignment数值进行压栈操作,这里的栈是the internal compiler stack,同时设置当前的packing alignment为n;如果n没有指定,则将当前的packing alignment数值压栈;
    3. pop:可选参数;从internal compiler stack中删除最顶端的record;如果没有指定n,则当前栈顶record即为新的packing alignment数值;如果指定了n,则n将成为新的packing aligment数值;如果指定了identifier,则internal compiler stack中的record都将被pop直到identifier被找到,然后pop出identitier,同时设置packing alignment数值为当前栈顶的record;如果指定的identifier并不存在于internal compiler stack,则pop操作被忽略;
    4. identifier:可选参数;当同push一起使用时,赋予当前被压入栈中的record一个名称;当同pop一起使用时,从internal compiler stack中pop出所有的record直到identifier被pop出,如果identifier没有被找到,则忽略pop操作;
    5. n:可选参数;指定packing的数值,以字节为单位;缺省数值是8,合法的数值分别是1、2、4、8、16。

    #pragma pack规定的对齐长度,实际使用的规则是:结构,联合或者类的数据成员,第一个放在偏移为0的地方,以后每个数据成员的对齐,按照#pragma pack指定的数值和这个数据成员自身长度中比较小的值来对齐。
    也就是说,当#pragma pack的值等于或超过所有数据成员长度的时候,这个值的大小将不产生任何效果。
    而结构整体的对齐,则按照结构体中size最大的数据成员和#pragma pack指定值之间较小的值来对齐。

    -------------------------------------------
    例1:
    #pragma pack(2)
    struct TestA
  {
  public:
    int   a; // 第一个成员,放在[0,3]偏移的位置。
    char  b; // 第二个成员sizeof(char)=1,#pragma pack(2), 取小值也就是1,所以这个成员按1字节对齐,放在偏移[4]的位置。
    short c; // 第三个成员sizeof(short)=2, #pragma pack(2),取小值也就是2,所以这个成员按2字节对齐,所以放在偏移[6,7]的位置。
    char  d; // 第四个成员sizeof(short)=1, #pragma pack(2), 取小值也就是1,所以这个成员按1字节对齐,放在[8]的位置。
  };
    #pragma pack()
    struct TestA中size最大的数据成员(4),#pragma pack(2), 取小值也就是2,所以sizeof(TestA)应当按照2来对齐,为10。

    -------------------------------------------
    例2:
    #pragma pack(4)
    struct TestB
  {
  public:
    int   a; // 第一个成员,放在[0,3]偏移的位置。
    char  b; // 第二个成员sizeof(char)=1,#pragma pack(4), 取小值也就是1,所以这个成员按1字节对齐,放在偏移[4]的位置。
    short c; // 第三个成员sizeof(short)=2, #pragma pack(4),取小值也就是2,所以这个成员按2字节对齐,所以放在偏移[6,7]的位置。
    char  d; // 第四个成员sizeof(short)=1, #pragma pack(4), 取小值也就是1,所以这个成员按1字节对齐,放在[8]的位置。
  };
    #pragma pack()
    struct TestB中size最大的数据成员(4),#pragma pack(4),  取小值也就是4,所以sizeof(TestB)应当按照4来对齐,为12。

    -------------------------------------------
    例3:
    #pragma pack(8)
    struct s1
    {
        short a; // 第一个成员,放在[0, 1]偏移的位置。
        long  b; // 第二个成员sizeof(long)=4, #pragma pack(8), 取小值也就是4,所以这个成员按4字节对齐,放在偏移[4~7]的位置。
    };

    struct s2
    {
        char      c; // 第一个成员,放在[0]偏移的位置。
        struct s1 d; // 第二个成员为struct s1,其对齐方式是它的所有成员使用的对齐参数中最大的一个,即4。
                     // 所以第二个成员d按4字节对齐,由于sizeof(d)=8, 放在偏移[4~11]的位置。
        long long e; // 第三个成员sizeof(long long)=8, #pragma pack(8), 取小值也就是8,所以这个成员按8字节对齐,放在偏移[16~23]的位置。
    };
    #pragma pack()

    问:
    1. sizeof(struct s2) = ?
    2. s2的c后面空了几个字节接着是d?
   
    答案1:
        struct s1中size最大的数据成员(4),#pragma pack(8),取小值也就是4,所以sizeof(struct s1)应当按照4来对齐,为8。
        struct s2中size最大的数据成员(8),#pragma pack(8),取小值也就是8,所以sizeof(struct s2)应当按照8来对齐,为24。
    答案2:
        s2的c后面空了3个字节接着是d。
   
方法2: 使用__attribute((aligned (alignment)))
     aligned(alignment)属性作用于变量或结构成员,参数alignment表示最小的对齐字节数。
     例如:
     int x __attribute__ ((aligned (16))) = 0;
     使编译器为全局变量x分配空间在16字节边界。
     
     例如:创建一个以8字节为边界对齐的两个整数,可以写为:
     struct foo
     {
        int x[2] __attribute__ ((aligned (8)));
     };

     前面两个例子中,指定参数alignment告诉编译器作用于变量或结构成员。
     但也可以不指定参数alignment,让编译器根据为编译的目标机采用最大最有益的方式对齐。
     例如:
          short array[3] __attribute__ ((aligned));
     一旦在aligned()属性中不指定参数,编译器会自动将变量或结构成员参数alignment设置为目标机上曾经使用的数据类型中最大的alignment,
     这样可以使copy操作效率更高。
     
     aligned属性只能用于增加alignment; 可以使用packed属性来减小alignment。
     
     注意:aligned属性应用效果受到链接器的限制。在许多系统中,链接器将变量对齐只能设置到某个最大值。
     假如使用的链接器将变量对齐最大只能设置为8字节,那么指定aligned(16)属性只能提供8字节的边界对齐。
     需要参考具体使用的链接器相关文档。

     举例:     
     struct A{
        char               a;
        int                b;
        unsigned short     c;
        long               d;
        unsigned long long e;
        char               f;
    };
    因为什么也没有跟,所以采用默认处理方式。其结果是与采用__attribute__((aligned(4)))相同。
    sizeof(struct A) = 4(a, 1-->4)+ 4 + 4(c, 2-->4) + 4 + 8 + 4(f, 1-->4) = 28。

     struct B{
        char               a;
        int                b;
        unsigned short     c;
        long               d;
        unsigned long long e;
        char               f;
    }__attribute__((aligned));
    在struct B中,aligned没有参数,表示“让编译器根据目标机制采用最大最有益的方式对齐"。
    当然,最有益应该是运行效率最高吧,呵呵。其结果是与采用__attribute__((aligned(8)))相同。
    sizeof(struct B) = 8(1+4+2 ,即a, b, c)+ 8(d, 4-->8) + 8 + 8(f, 1-->8) = 32。
   
     struct C{
        char               a;
        int                b;
        unsigned short     c;
        long               d;
        unsigned long long e;
        char               f;
    }__attribute__((aligned(1)));
    在struct C中,试图使用__attribute__((aligned(1)))来使用1个字节方式的对齐,不过并未如愿,仍然采用了默认4个字节的对齐方式。

方法3: 使用__attribute__ ((packed))取消结构在编译过程中的优化对齐
     __attribute__ ((packed))作用于结构成员,表示该成员与前一个结构成员之间没有空洞。
     举例:
     struct foo
     {
        char a;
        int x[2] __attribute__ ((packed));
     };
     这里packed属性作用于成员x,因而在结构成员a后没有空洞,而是立即紧跟着成员x。

     __attribute__ ((packed))作用于整个结构,等同于为结构中的每个成员指定__attribute__ ((packed)),也与结构前后利用#pragma pack(1)等效。
     举例:
     struct F{
        char               a;
        int                b;
        unsigned short     c;
        long               d;
        unsigned long long e;
        char               f;
    }__attribute__((packed));
    sizeof(struct F) = 1 + 4 + 2 + 4 + 8 + 1 = 20。
   
    注意:在使用了packed属性限定之后,GCC编译器将用字节存取命令(ARM中为LDRB或STRB指令)来访问该结构成员,
    而不是按照自然边界对齐方式来访问结构成员,可参见。
   
方法4: GCC编译选项中使用-fpack-struct[=n]
       如果没有指定n, 则去除所有结构中的空洞(注意这里会影响到所有的结构),即编译器不能在成员之间填充边界对齐的空字节。
       如果指定n, 则n表示maximum alignment (that is, objects with default alignment requirements larger than this will be output potentially unaligned at the next fitting location)。
      
       但通常不应当使用该选项,因为这会使访问结构成员的效率降低,代码量增大(通常会增加1/3左右,当Flash空间很有限时就要认真考虑了),
       而且使生成的代码与没有使用该编译选项的系统库不兼容。
           
4. 补充
   对于诸如char a[3];这种数组,它的对齐方式和分别写3个char是一样的,也就是说它还是按1个字节对齐。
   如果写为typedef char Array3[3];,则Array3这种类型的对齐方式还是按1个字节对齐,而不是按它的长度。
   不论类型是什么,对齐的边界一定是1,2,4,8,16,32,64....中的一个.
   
5. 参考资料
   [1] ARM体系结构下数据访问时的对齐问题.txt
   [2] GCC 4.3.2 Manual, http://gcc.gnu.org/onlinedocs/
   [3] ARM嵌入式软件编程经验谈, 华清远见科技信息有限公司, www.realview.com.cn/shoppic/iq-006/P22-23-ARM嵌入式软件编程经验谈.pdf
本文出自 “kapu” 博客,请务必保留此出处http://kapok.blog.51cto.com/517862/127218

出100入101汤圆

发表于 2014-9-5 23:33:14 | 显示全部楼层
是好资料,板块就没要较真了。

出0入0汤圆

发表于 2014-9-5 23:37:54 | 显示全部楼层
本帖最后由 sunrundong 于 2014-9-5 23:51 编辑

楼主有谭浩强的C++程序设计的电子书吗?

出0入0汤圆

 楼主| 发表于 2014-9-6 18:13:32 | 显示全部楼层
sunrundong 发表于 2014-9-5 23:37
楼主有谭浩强的C++程序设计的电子书吗?

谭浩强的C++好像有的,不给我要迟几日再回宿舍的

出0入0汤圆

发表于 2014-9-6 18:17:49 | 显示全部楼层
taojie 发表于 2014-9-5 18:45
想问问,你在编程的时候,有无用结构体,指针那些的啊?

基本每个程序都有....

出0入0汤圆

 楼主| 发表于 2014-9-6 18:17:52 | 显示全部楼层
wxfje 发表于 2014-9-5 21:15
结构体和指针很多地方都在用,当然了,不用也可以,但用起来会使程序更容易理解
用结构体时,注意对齐的 ...

对啊,以前我也出来不用结构体的,不懂就不用的,后来复习一下课件,学会了熟练了就知道好处啦

出0入0汤圆

 楼主| 发表于 2014-9-6 18:19:43 | 显示全部楼层
本帖最后由 taojie 于 2014-9-6 18:27 编辑
wxfje 发表于 2014-9-5 23:26
贴片文章,你慢慢看,这块知识点其实不难的,就是有点浪费内存


多谢了哦,学习,发觉结构体和指针两者结合,实在方便好多的,对以后程序修改什么的都好好多,何乐而不为呢,呵呵

出0入0汤圆

发表于 2014-9-6 18:47:11 | 显示全部楼层
好多资料

出0入0汤圆

发表于 2014-9-6 19:00:51 | 显示全部楼层
LZ发的资料真的很全了,留个记号,准备重新学习一下C。

出0入0汤圆

发表于 2014-9-7 07:51:37 | 显示全部楼层
taojie 发表于 2014-9-6 18:13
谭浩强的C++好像有的,不给我要迟几日再回宿舍的

好的,那就先看着C语言就好了,再学一遍指针!

出0入0汤圆

发表于 2014-9-7 08:17:03 来自手机 | 显示全部楼层
这个不错,很多。

出0入0汤圆

发表于 2014-9-7 08:35:51 | 显示全部楼层
谢谢,有空可以看看!

出0入0汤圆

发表于 2014-9-7 08:39:26 | 显示全部楼层
学习C语言的福地啊

出0入0汤圆

发表于 2014-9-7 08:44:44 来自手机 | 显示全部楼层
好全的资料,收了,谢楼主

出10入10汤圆

发表于 2014-9-7 08:57:13 | 显示全部楼层
好资料,收藏了

出0入0汤圆

发表于 2014-9-7 09:00:11 | 显示全部楼层
确实很齐全,感谢露珠分享。

出0入0汤圆

发表于 2014-9-7 12:00:43 | 显示全部楼层
很不错的一份C资料,谢谢楼主分享

出0入0汤圆

发表于 2014-9-7 12:21:00 | 显示全部楼层
mark!

出0入0汤圆

发表于 2014-9-7 15:15:10 | 显示全部楼层
谢谢分享,正好学习学习

出0入0汤圆

发表于 2014-9-7 18:06:22 | 显示全部楼层
要温习一下

出50入0汤圆

发表于 2014-9-8 09:27:14 | 显示全部楼层
C语言的好资料

出0入0汤圆

发表于 2014-9-8 09:37:26 | 显示全部楼层
这个不MARK不行呀!!!就水一回吧!!

出0入0汤圆

发表于 2014-9-8 09:51:39 | 显示全部楼层
资料都很给力  不过已经有啦

出0入0汤圆

发表于 2014-9-8 10:12:04 | 显示全部楼层
wxfje 发表于 2014-9-5 23:26
贴片文章,你慢慢看,这块知识点其实不难的,就是有点浪费内存

谢谢  你这篇文章不错   受教啦

出1000入0汤圆

发表于 2014-9-8 10:15:37 | 显示全部楼层
资料很全,下载下来没事再温习一下,谢谢楼主

出0入0汤圆

发表于 2014-9-8 10:55:17 | 显示全部楼层
MARK, 谢谢楼主!

出0入0汤圆

发表于 2014-9-8 15:26:50 | 显示全部楼层
好资料,感谢楼主。

出0入46汤圆

发表于 2014-9-8 15:29:01 | 显示全部楼层
好资料,值得看看

出0入0汤圆

发表于 2014-9-8 17:38:11 | 显示全部楼层
学习,下下来放kindle

出0入0汤圆

发表于 2014-9-8 18:33:18 | 显示全部楼层

不错            

出0入0汤圆

发表于 2014-9-8 18:48:57 | 显示全部楼层
感谢楼主分享,资料很好

出0入0汤圆

发表于 2014-9-8 19:04:37 | 显示全部楼层
mark 谢谢

出0入0汤圆

发表于 2014-9-8 19:23:06 | 显示全部楼层
收藏了,谢谢

出0入0汤圆

发表于 2014-9-8 22:00:02 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-9-8 22:37:53 | 显示全部楼层
好贴留名                                            

出0入0汤圆

发表于 2014-9-8 23:01:40 | 显示全部楼层
全部下载了,我也分享一本好书

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-8 23:05:55 | 显示全部楼层
很全··收藏了

出0入0汤圆

发表于 2014-9-8 23:25:32 | 显示全部楼层
C语言的好资料

出0入0汤圆

发表于 2014-9-8 23:30:50 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-9-8 23:34:05 | 显示全部楼层
都是好书,怀念爱问没关的日子

出0入0汤圆

发表于 2014-9-9 10:27:26 | 显示全部楼层
我也加入一本清华大学ARM培训教材:《嵌入式系统的构建》

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入16汤圆

发表于 2014-9-9 13:25:47 | 显示全部楼层
资料不错,可惜现在越来越变成收藏家了,东西收藏后很多没看

出0入0汤圆

发表于 2014-9-9 13:39:51 | 显示全部楼层
很全的资料,谢谢了

出0入0汤圆

发表于 2014-9-9 13:46:37 | 显示全部楼层
顶起!                     

出0入0汤圆

发表于 2014-9-9 15:43:00 | 显示全部楼层
mark,好东西就是要收藏。

出0入0汤圆

发表于 2014-9-9 16:25:30 | 显示全部楼层
很齐全的资料啊!

出0入0汤圆

发表于 2014-9-9 16:26:44 | 显示全部楼层
好资料谢谢分享

出0入0汤圆

发表于 2014-9-9 16:32:20 | 显示全部楼层
好贴!mark

出0入4汤圆

发表于 2014-9-9 18:20:46 来自手机 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2014-9-9 18:23:02 | 显示全部楼层
谢谢共享,谢谢共享

出0入0汤圆

发表于 2014-9-9 19:30:34 | 显示全部楼层
好多书,不知道该看哪本饿

出0入0汤圆

发表于 2014-9-9 20:18:39 | 显示全部楼层
好多资料,先收藏。

出0入0汤圆

发表于 2014-9-9 20:24:58 | 显示全部楼层
好资料,谢谢分享

出0入0汤圆

发表于 2014-9-10 12:31:39 | 显示全部楼层
多谢楼主分享

出0入0汤圆

发表于 2014-9-15 19:56:43 | 显示全部楼层
在学习单片机,温习一下C语言

出0入0汤圆

发表于 2014-9-16 20:12:47 | 显示全部楼层
这么多资料要什么时候看完,苦B程序猿。

出0入0汤圆

发表于 2014-9-16 20:13:47 | 显示全部楼层
哎,还是收了吧,苦B

出0入0汤圆

发表于 2014-9-17 12:32:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2014-9-17 13:09:24 | 显示全部楼层
很全啊  谢谢分享

出0入0汤圆

发表于 2014-12-4 09:42:51 | 显示全部楼层
收藏准备学习一下

出0入0汤圆

发表于 2014-12-4 10:29:37 | 显示全部楼层
好东西,这么多,

出0入0汤圆

发表于 2014-12-4 10:37:36 | 显示全部楼层
最近在看K&R C,,, 不过编程器有点儿问题...

出0入0汤圆

发表于 2014-12-4 11:11:24 | 显示全部楼层
谢谢分享!!

出0入0汤圆

发表于 2014-12-8 17:18:48 | 显示全部楼层
就这么愉快的收了

出140入115汤圆

发表于 2014-12-8 17:29:25 | 显示全部楼层
多谢楼主分享

出0入0汤圆

发表于 2014-12-8 18:00:28 | 显示全部楼层
《C语言深度剖析》很不错。大概的点都讲到了,但讲得不细。有一定C基础的人看比较有效果。

出0入0汤圆

发表于 2014-12-8 19:46:05 | 显示全部楼层
这么多资料赶紧收藏,谢谢LZ

出0入0汤圆

发表于 2014-12-8 22:36:01 | 显示全部楼层
记号,备用

出0入0汤圆

发表于 2014-12-8 22:38:26 | 显示全部楼层
好东西啊!

出0入0汤圆

发表于 2014-12-9 13:50:34 | 显示全部楼层
不错 值得收藏

出0入4汤圆

发表于 2014-12-9 15:49:32 | 显示全部楼层
怎么少得了C primer

出0入0汤圆

发表于 2014-12-9 16:19:19 | 显示全部楼层
资料不错,都往这个版块发!!

出0入0汤圆

发表于 2014-12-9 17:24:18 | 显示全部楼层
看过林锐的,,,数中的位,字节,字,双字,浮点,得真假判断,,看得我收获很大

出0入0汤圆

发表于 2014-12-15 00:49:15 | 显示全部楼层
马克 一下

出0入0汤圆

发表于 2014-12-16 09:21:58 | 显示全部楼层
很好的合辑 收藏了

出0入0汤圆

发表于 2014-12-16 09:57:11 | 显示全部楼层
学C语言的好资料啊!楼主威武哈!!!

出0入0汤圆

发表于 2014-12-16 20:52:48 | 显示全部楼层
先收藏咯  谢谢楼主~

出0入0汤圆

发表于 2014-12-22 15:44:35 | 显示全部楼层
好东西,值得收藏

出0入0汤圆

发表于 2014-12-22 18:21:24 | 显示全部楼层
这个板块 好热啊

出0入0汤圆

发表于 2014-12-22 20:35:59 | 显示全部楼层
收下, 经常看看学习.

出0入0汤圆

发表于 2014-12-22 21:39:50 | 显示全部楼层
谢谢分享!mark!

出0入0汤圆

发表于 2014-12-23 09:41:29 | 显示全部楼层
非常好的资料! mark一下!

出0入0汤圆

发表于 2014-12-23 09:44:52 | 显示全部楼层
这些书不错,收藏!

出0入0汤圆

发表于 2014-12-23 10:40:26 | 显示全部楼层
不错,感谢分享,

出0入0汤圆

发表于 2014-12-23 10:47:03 | 显示全部楼层
mark!!!!!!!!!!!!

出0入0汤圆

发表于 2014-12-24 10:58:40 来自手机 | 显示全部楼层
还是喜欢看纸质书,电子书看起来不爽,特别是扫描版的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 13:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表