字符串的两种不同风格: C++风格和C风格
这个提法有点怪异,但还是常常出现:
char *p = "abcd";
和
string str = "abcdefg";
第一个叫做C风格的字符串,原因是有null作为结尾; 第二个为C++风格的, 不是以null结尾.
实质上: C风格的字符串是:
char[] pArr = {'a', 'b', 'c', 'd', '\0'};
这样决定了处理方式的不同
相关文档:
C6000系列DSP的硬件资源为高性能提高了必要条件,TI公司也配合C6000推出了世界上第一个效率可达70%~80%的汇编语言级C编译器,它产生的代码平均效率是以往DSP编译器的3倍,如何理解并充分利用这些有利资源,使代码达到所期望的性能,是本章的主题。
① 第一阶段:属于纯C阶段,此时不需要 ......
1.下面哪种代码风格更好,why?
A . if ('A' == a)
{a++;}
B. if( a == 'A')
{a++;}
答案:A,如果把==错写成=,因为编译器不允许对常量赋值,容易差错。
2.#define MUTI(x) (x*x)
int i=3,j, ......
1)a = a + 5; 与 a += 5;的区别。
二者在广义上是等价。D.Ritchie 在C语言中引入复合运算符的主要目的是为了提高编译的效率以产生高质量的执行代码。因为这些运算符的功能基本上都能用一二条机器指令来完成。
2)在C++中long 与 int 的区别
NameDescriptionSize*Range*
char
Character or s ......
最近在开发中,对常量参与运算时候,出了几个问题,特记录如下:
1.例子一(KEIL-51)
unsigned char recsum,xorsum;
recsum == 0xFF;
xorsum == 0x00;
if(recsum != (xorsum-1)) //这时候不相等
if(recsum != (unsigned ch ......
#include<stdio.h>
#include<stdarg.h>
#include<string.h>
void demo(char *msg,...)
{
va_list argp;
int arg_number=0;
char *para = msg;
va_start(argp,msg);
while(1){
if ( strcmp( para, "\0") != 0 ) {
arg_number++;
printf("parameter %d is: %s\n",arg_number,p ......