c语言中 #ifdef . 和#endif 配套使用的方法 ?
c语言中 #ifdef ...... 和#endif 配套使用的方法 ?
一、为什么要用#ifdef .... #endif
在C语言中,我们通常会在头文件里面声明外面使用的宏定义、函数声明以及全局变量定义之类的,当我们需要使用这个东西的时候,只需要通过include "xxxx.h"包含相应的头文件即可。
但是如果连个xx.c文件同时包含了同一个头文件,会出现什么情况呢?
如果没有不使用#ifdef #endif ,则会出现宏、变量、重复定义,导致编译通不过。
所以我们需要通过 #ifdef #endif 来避免这个问题。
二、如何使用
比如头文件名为 keyboard.h 。那么通用的使用方法如下:
#ifndef _KEYBOARD_H
#define _KEYBOARD_H
............
#endif
通过这种方法,当第一次使用这个头文件的c文件,编译时,查看是否定义 _KEYBOARD_H
第一次肯定没有,所以它就定义了头文件里面的相关宏以及变量。
第二个使用这个头文件的C文件,编译时,一看 _KEYBOARD_H已经存在,说明我需要使用的东西使用存在,不需要定义了,直接使用就可以了 ,这样 问题就解决了。
完全手打,正好有空 ,解释一下,希望有用
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
在C语言中用递归调用的方法求n!
#include <stdio.h>
int Func(int n)
{
if(n < 2)
return 1;
else
return n*Func(n-1);
}
int main()
{
int n = 5;
printf("n! = %d\n",Func(n));
return 0;
}
执行过程:
-》Func(5)
-》5*Func(4)
-》5*(4*Func(3))
-》5*(4*(3*Func(2))))
-》5*(4*(3*(2*Func(1))))
当n为0的时候停止递归,返回结果
由于遇到1的时候返回1,那么Func(1)=1
所以结果是5*(4*(3*(2*1))) = 120
C语言中怎么使用API函数 求使用方法
比如 PeekMessage 就是win32 SDK函数, 找本Win32 SDK开发指南翻翻就好了。
C语言中跳出while(1)的方法{ }
int i=0;
while(1)
{
if(i==10)
break;
printf("OK");
i++;
}
这里的break就是在i等于10的时候跳出了while(1)这个无限循环
C语言中计算N!的方法
求阶乘吧 应该没有那么复杂吧
main()
{
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
s*=i;
printf("%d\n",s);
}
可以算N的阶乘
使用c语言打开磁盘的方法。
c标准没有定义此类函数 建议用api
******C语言中调用汇编的方法…*****
C语言中调用汇编的方法如下:
1、用关键字a *** 嵌入,例如:
void exchange(int a,int b);
main()
{
int x,y;
scanf(“%d,%d”,&x,&y);
printf(“x=%d,y=%d”,x,y);
exchange(x,y);
printf(“x=%d,y=%d”,x,y);
}
void exchange(int a,int b)
{
a *** mov ax,a
a *** mov bx,b
a *** mov a,bx
a *** mov b,ax
}
2、用_a *** { }格式
#include <stdio.h>
int main()
{
int result;
_a *** {
mov eax,1
mov ebx,1
add eax,ebx
mov result, eax
}
printf("1+1=%d\n", result);
return 0;
}
c语言使用的*.lib文件方法
#include <aaa.h>
#pragma ment(lib,"aaa.lib") 载入aaa.lib
int main()
{
函数的主体
return 0;
}
C语言中 random使用
Random函数
Math.random();
可以产生出0-1之间的任意小数,例如0.0105901374530933 或0.872525005541986,有几个其他的函数可以用来改变产生的数字,从而可以更好的在影片中使用:
Math.round();
Math.ceil();
Math.floor();
这几个函数都是用来取得整数的,Math.round();是采用四舍五入方式取得最接近的整数。Math.ceil();是向上取得一个最接近的整数。Math.floor(); 和Math.ceil();相反,Math.floor();向下取得一个最接近的整数。