C老鸟编程技巧总结 (2)

原创 2011年01月12日 20:26:00

 

本文来自http://blog.csdn.net/lijun84 ,引用必须注明出处!

 

5 ,复杂指针的声明


 

规则总结:

1) 去掉变量名就类型 , 去掉一个 *, 就是指向内存单元的类型 .

2) 强调什么将名子和强调的东东括最里层 , 再将其次强调的东西括外面一层 , 最后强调的括最外层 , 类型最后加在外面 :

: int (*i)[2]; 指向 int ()[2] 的指针 ( 强调指针 )

       Int *(i[2]); 类型为 int *() 的数组 ( 强调数组 )

       Void (*pf)(); 指向 void ()() 的函数指针 .

Void (*(pf[2]))();  函数类型为 void ()() 的指针数组 ( 最强调数组 , 所以先括数组 , 其次强调指针 , 所以将它括在外面一层 .

Void (*((*pf)[2]))(); 指向上个函数指针数组的指针 ,( 最强调指针 , 所以将变量明和指针括在最里层 , 其次强调数组 , 所以括在上一层 , 最后又强调指针 , 所以将其括在最外层 .)

 

 

 

 

6. 模拟 UCOS 中的 TASK 切换和邮箱机制 (由于 UCOS 代码比较复杂,自己实现了个模拟的,为了方便所以栈还是弄乱了!)

#define T(a,b) t##a(){ /

              while(1){ /

                     printf(gM(a)); /

                     sM(#b"/n",b); /

                     mS(); /

              } /

       }

 

unsigned int ip=0;

char mb[2][3];

 

char*gM(int p){

       return (mb[p-1]);

}

 

sM(char*m,int p){

       strcpy(mb[p-1],m);

}

 

mS(){

       Sleep(0xFF);

       _asm mov eax,ip

       _asm xchg eax,[ebp+4]

       _asm mov ip,eax

}

 

T(1,2)

T(2,1)

 

main(){

       ip=&t2;

       t1();

}

 

 

7, 泛型宏 (说明代码提取自 Linux 源码)

#define min(x, y) ({                           /

       typeof(x) _min1 = (x);                 /

       typeof(y) _min2 = (y);                 /

       (void) (&_min1 == &_min2);             /

       _min1 < _min2 ? _min1 : _min2; })

C老鸟编程技巧总结 (1)

本文来自http://blog.csdn.net/lijun84 ,引用必须注明出处! 本文来自我实践中以及阅读优秀开源项目的技巧手法总结。更多是从设计和代码结构技巧上考虑,希望对大家提供C编程有...
  • lijun84
  • lijun84
  • 2011年01月10日 22:02
  • 2806

读《汇编语言》小结1

近期,读了王爽的《汇编语言》1-8章,收获很多;对CPU,编程有了新的理解。 CPU是世界上最聪明的,同时也是最笨的“大脑”。汇编程序员只需要通过改写寄存器,就可以随意控制CPU让它干各种复杂的运算;...
  • Since20140504
  • Since20140504
  • 2014年05月26日 21:09
  • 721

C语言高效编程技巧

  编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。   第1招:以空间换时间   计算机程序中最大的矛盾是空间和时间的矛盾,那么...
  • belowsky
  • belowsky
  • 2007年01月13日 05:20
  • 502

Java入门123:一个老鸟的Java学习心得(二维码版)

Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社
  • a3333333sdas
  • a3333333sdas
  • 2015年07月10日 13:36
  • 850

GPU精粹2——高性能图形芯片和通用计算编程技巧 流式编程 1

http://book.csdn.net/现代的GPU,在计算历史中第一次把数据并行、流式计算平台放入几乎每台台式计算机和笔记本电脑中。一些最近的学术派研究论文——以及本书的其他章节——演示了这些流式...
  • yangdelong
  • yangdelong
  • 2007年05月30日 19:23
  • 2171

c语言编程一些小技巧

这编博客是为了记录自己编程的心路历程,固件编程一直是自己的短板,身为一个硬件工程师偏偏经常接到写固件的活,其实我的内心是拒绝的。但是,这想让自己的短板变成平板并不冲突~所以该好好学就好好用功。总结的只...
  • sky_ting
  • sky_ting
  • 2017年06月09日 14:06
  • 527

C语言编程技巧札记

size_t:size_t的全称应该是size type,就是说“一种用来记录大小的数据类型”。属于C99标准,...
  • sonbai
  • sonbai
  • 2014年08月22日 18:43
  • 1296

C/C++编程技巧总结

用int Stride = (width + 3) & ~3;
  • shudaxia123
  • shudaxia123
  • 2014年07月15日 16:09
  • 644

2个C编程技巧

1   “取模”操作的高效替代操作——“取&” e.g.    9%(2^3) = 1         9&(2^3 - 1) = 1         2   宏与其对应字符的转换——“#”...
  • wzzushx
  • wzzushx
  • 2015年01月19日 19:23
  • 287

C语言 if语句的总结(2)附:用if实现加减运算复习用

/*  1.if的第1种结构  if(条件)  {  语句1;  语句2;  ......  }    2.if的第2种结构  if(条件1...
  • hanxujie00
  • hanxujie00
  • 2015年07月12日 15:48
  • 247
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C老鸟编程技巧总结 (2)
举报原因:
原因补充:

(最多只允许输入30个字)