当前位置:首页 » 编程软件 » 条件预编译练习

条件预编译练习

发布时间: 2022-02-15 08:01:41

① 从思路开始 java如何实现条件编译的技巧

条件编译绝对是一个好东西。如在C或Cpp中,可以通过预处理语句来实现条件编译。代码如下:
#IFDEF DEBUG#UNDEF DEBUG#ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */#ELSE /* code block 2 */#ENDIF


但是在JAVA中却没有预处理,宏定义这些东西,而有时我们可能需要条件编译。那么,在JAVA中,该如何实现条件编译呢?
我们来看一个例子。
编写一个helloworld程序。代码如下:

public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); }}


保存为Hello.java并编译,得到一个class文件,并且观察到文件大小是417字节。然后我们对这个文件进行反编译,用jd-gui。得到代码如下:

import java.io.PrintStream;public class Hello { public static void main(String[] paramArrayOfString) { System.out.println("Hello, world!"); }}


得到这个有什么用呢?
现在我们再来对源代码进行修改,修改后的代码如下。

public class Hello { public static void main(String[] args) { if(false) { System.out.println("Hello, world!"); } }}

进行编译,这时我们再看它的大小,只有255字节。怎样?想到什么了吧?没错,编译器会对代码进行优化,对于条件永远为false的语句,JAVA编译器将不会对其生成字节码。

c语言中条件编译的实例

条件编译命令最常见的形式为:
#ifdef 标识符
程序段1
#else
程序段2
#endif
它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。
其中#else部分也可以没有,即:
#ifdef
程序段1
#endif
这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。例如,我们有一个数据类型,在Windows平台中,应该使用long类型表示,而在其他平台应该使用float表示,这样往往需要对源程序作必要的修改,这就降低了程序的通用性。

③ 条件编译,ifdef条件,ifndef条件的区别是什么

一般情况下,源程序中所有行都参加编译。但是有时希望程序中一部分内容只在满足一定条件是才进行编译,也就是对这一部分内容指定编译的条件,也就出现了条件编译.
#ifdef 和 #ifndef 用法及意义其实跟判断语句if是一样的
但使用if语句目标程序长,因为所有语句都要进行编译,运行时间长,因为运行时要对if语句进行测试
,而采用条件编译,就可以减少编译语句,从而减少目标程序的长度,减少运行时间。

④ 条件编译有哪几种形式

#if NNN
statement1;
#elif MMM
statement2;
#else
statement3;
#endif

http://ke..com/view/1995627.htm

⑤ 条件编译问题

if语句是确定要编译的内容,在运行时判断,比如:
if(a>b)
printf("A大于B");
else
printf("A小于B");

条件编译可不是在运行阶段执行的,是为了某种需要(特别是跨平台的需要),只在编译器扫描源代码时,确定用哪一部分。

举个例子,比如,一般LINUX多线程程序叫做pthread_create,而WINDOWS启动多线程的程序是CreateThread,为了保证同一个程序可以跨平台运行,我们这样书写程序:
#ifdef WIN32 //如果是WINDOWS系统
#include <windows.h>
#define THREAD CreateThread
#else //如果是LINUX系统
#include <pthread.h>
#define THREAD pthread_create
#endif

数据库预编译语句in(查询条件),如果查询条件只有一个,可以运行,如果多个条件,则不能运行,为什么

你这个是把usercode的值作为变量给了语句里的?

这时候就有个问题
你的userCode是string类型的数组吧。。。
那么传进去的应该是'10086','10087'

如果不是这个问题你就在执行SQL语句之前先输出一下语句 日志里看看是哪里格式不对了

⑦ C语言预编译,条件编译问题

不可以。条件编译的条件必须是在程序运行之前就知道值的,这样才能把你的代码根据情况编译为不同的程序。这里的函数参数在运行前不知道值,因此无法使用条件编译。

⑧ 什么条件下使用条件预编译

使用这个东西的话,只要你想使用这个东西就可以使用了,这个的话倒是没有什么特别的限制的

⑨ 一道c语言试题(条件编译)

你想一下 在宏替换之后程序变为
#include <stdio.h>
void main()
{
int a[5],m,*p=a;
while(p<a+N)
scanf("%d",p++);
p=a;
#if YES==NO
m=*p;
while(++p<a+5) {if(m<*p) m=*p;}
printf(" max=%d\n",m);

#else
m=*p;
while(++p<a+N) {if(m>*p) m=*p;}
printf(" min=%d\n ",m);
#endif
}
这里的YES==NO是什么意思? 你见过这样的表达式么?
给你修改一下,这样就是求最小值了
#define N 5
#define YES 1
#define NO 0
#define DEBUG YES
#include <stdio.h>
void main()
{
int a[N],m,*p=a;
while(p<a+N)
scanf("%d",p++);
p=a;
#if DEBUG==NO
m=*p;
while(++p<a+N) {if(m<*p) m=*p;}
printf(" max=%d\n",m);

#else
m=*p;
while(++p<a+N) {if(m>*p) m=*p;}
printf(" min=%d\n ",m);
#endif
}

⑩ 如何实现条件编译

插入预编译宏命令,例如:

// 宏 条件
#ifdef __APPLE__
// 这里编译 苹果 的
#else
// 这里编译 其它 的
#endif

热点内容
系列影视广告文案脚本 发布:2025-01-13 17:31:57 浏览:789
防盗器编程 发布:2025-01-13 17:24:39 浏览:897
联通电信服务器怎么不卡顿 发布:2025-01-13 17:21:30 浏览:818
科沃兹低配可以升级哪些配置 发布:2025-01-13 17:09:26 浏览:327
android判断数据库是否存在 发布:2025-01-13 17:08:17 浏览:331
ie脚本运行错误 发布:2025-01-13 17:08:05 浏览:620
python中或者怎么表示 发布:2025-01-13 16:32:33 浏览:288
易达加密锁 发布:2025-01-13 16:27:23 浏览:516
前端编译工具配置 发布:2025-01-13 16:26:43 浏览:585
数据库百度云 发布:2025-01-13 16:19:38 浏览:539