《Visual C++开发实战1200例》学习笔记【1】

时间:2022-05-11 20:21:35

2012.11.28  记

例16:对齐凌乱代码

快捷键:Alt+F8(ctrl+A--àalt+F8全部对齐)

附:ctrl+F8为单行选定

多行代码的移动:

1、先选定

2、整体左移:shift+ctrl+M

     整体右移:Tab


 

例17:判断代码括号是否匹配

1、移到括号前

2、Ctrl+]或ctrl+E

3、if 匹配

       移到匹配的括号前;

     else

       不移动,还会警报;

 

例18:修改可执行文件的资源

1、File-->open-->open as,resources-->打开某个.exe或.dll格式文件

  这样文件中包含的资源就会显示出来,可以进行修改。

例如:修改图标、对话框样子等等

 

例38:不借助第3个变量使2个变量的值互换

运用异或运算符!

例:

int i=1,j=2;

cout<<i<<' '<<j<<endl;

i=i^j;

j=i^j;

i=i^j;

cout<<i<<' '<<j<<endl;

 

结果:

1 2

2 1

 

注:类似于连连看,两两相同抵消。

 

例40:带参数的宏定义,实现数组互换

宏定义的语法:

#define 宏名(参数表) 字符串

注意事项:

1、宏的展开:宏名后面括号内的实参替换#define命令行中的形参。

2、宏名和后面的括号中间不能加空格,否则空格后的字符都会被替代。

3、在带参数的宏定义中,形参不分配内存单元,因此不必做类型定义。

例:

#define swap(a,b) {int c;c=a;a=b;b=c;}

for(i=0;i<10;i++)

   swap(a[i],b[i]);         //这一行,实参a[i],b[i]传递给形参a,b,然后替代为花括号里的内容(包括花括号)

注:

1、宏定义是用宏名替代字符串,但不进行正确性检查

2、宏定义行末不能加分号;

3、#define命令出现在函数外面,宏名的有效范围为定义命令之后到源文件结束

4、可以用#undef命令终止宏定义的作用域

5、宏定义时,可以引用已定义的宏名,可以层层替换

6、程序中用双引号“”包起来的字符串内的字符,不进行替换

7、宏定义只作字符替换,不分配内存空间

 

例41:位运算符的使用

位运算符:

& 按位与运算符  都为1结果才为1,否则为0

| 按位或运算符  只要有一个为1,结果就为1,只有两个都为0,结果才为0

^ 异或运算符    两个二进位同号为0,否则为1

~ 取反运算符    1取反为0,0取反为1

例:

a=2,b=4,c=6,d=8

a & c = 2

b | d = 12

a ^ d = 10

~ a = 4294967293

注:

1.位运算不需要加载头文件

2.cout<<"a&c="<<a&b<<endl;

      会出错,因为&运算符优先级低于<<运算符。

  但可以:

      cout<<"a+b="<<a+b<<endl;

  因为+运算符优先级高于<<运算符。