易截截图软件、单文件、免安装、纯绿色、仅160KB

c 语言可变参数函数例子

#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,para);
}
else
break;
para = va_arg(argp,char *);
}
va_end(argp);
}
int main()
{
demo("Hello","World","\0");
system("pause");
return 0;
}  


相关文档:

编译出来的c/c++程式的参数压栈顺序只和编译器相关!

下面列举了一些常见的编译器的调用约定
VC6:
调用约定        堆栈清除    参数传递
__cdecl         调用者      从右到左,通过堆栈传递
__stdcall       函数 ......

C/C++程序员应聘常见面试题深入剖析

 2.找错题
  试题1:
void test1()
{
 char string[10];
 char* str1 = "0123456789";
 strcpy( string, str1 );
}
  试题2:
void test2()
{
 char string[10], str1[10];
 int i;
 for(i=0; i<10; i++)
 {
  str1[i] = 'a';
 }
 strcpy( string, str1 );
}
  试题3:
void te ......

C标准库源码解剖(10):区域设置函数locale.h

    国家、文化和语言规则集称为区域设置,locale.h头文件中定义了区域设置相关的函数。setlocale函数用于设置或返回当前的区域特性,localeconv用于返回当前区域中的数字和货币信息(保存在struct lconv结构实例中)。setlocale的第一个实参指定要改变的区域行为类别,预定义的setlocale类别有:
 &n ......

DSP C优化2

3.4理解编译器的反馈信息
    在编译C代码时,编译器在产生的.asm文件里向程序员反馈了许多信息,理解这些信息,按它的提示修改C代码,对尽快优化代码很有好处。只要用-k令编译器保留.asm文件,就可读到这些信息。
    对于C优化,重点就是循环,对于反馈信息,我们主要考察编译器对流水线 ......

C break跳出多层循环

 在C/C++中,跳出多层循环有3中方法:
  1.用break;加上一个辅助的标志变量。  
  2.用goto;  
  3.用try   ...   catch;
其中break对if-else语句无效,每次使用只能跳出一层循环。
用break的具体方法为:
bool BREAK=false;
while(...){
for(...){ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号