程序环境和预处理

1.linux环境实践,熟悉使用(网络搜索)
ls//list列出当前文件夹的所有文件
cd//change directory更改(切换)目录
mkdir//make directory创建目录(文件夹)
rm//remove删除文件
mv//move移动文件
touch//创建文件
pwd//print work directory打印当前工作目录

3.熟悉预处理标识符:
__LINE__     : 文件当前的行号
__FILE__     :  进行编辑的源文件
__DATE__   : 文件被编辑的日期
__TIME__    : 文件被编辑的时间

4.宏和函数的区别:
   其区别主要表现在:代码长度、执行速度、操作符优先级、参数求值、参数类型这几方面。

代码长度:

#define 宏:每次使用时,宏代码都被插入到程序中。除了非常小的宏之外,程序的长度将大幅度增长。

函数:函数代码只出现于一个地方;每次使用这个函数时,都调用那个地方的同一份代码。

执行速度:

#define 宏:更快。

函数:存在函数调用/返回的额外开销。

操作符优先级:

#define 宏:宏参数的求值是在所有周围表达式的上下文环境中,除非他们加上括号,否则邻近操作符的优先级可能会产生不可预料的结果。

函数:函数参数只在函数调用时求值一次,他的结果值传递给函数。表达式的求值结果更容易预测。

参数求值:

#define 宏:参数每次用于宏定义时,他们都将重新求值。由于多次求值,具有副作用的参数可能会产生不可预料的结果。

函数:参数在函数被调用时求值一次,在函数中多次使用参数并不会导致多种求值过程。参数的副作用并不会导致任何特殊的问题。

参数类型:

#define 宏:宏与类型无关。

函数:函数的参数与类型有关。如果参数的类型不同,就需要使用不同的函数,即使他们执行的任务是相同的。

5.写一个宏可以将一个数字的奇数位和偶数位交换。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#define SWAP(x)\
 (((x&(0x55555555)) << 1) | ((x&(0xAAAAAAAA))>>1))//十六进制
//提取x的奇数位并左移一位,偶数位并右移一位

int main()
{
 int x = 5;
 printf("%d\n", SWAP(x));
 system("pause");
 return 0;
}

6.使用宏实现两个数中求较大值。
#include <stdio.h>
#define MAX(a,b)\
 ((a) > (b) ? (a) : (b))
int main()
{
 int a = 5;
 int b = 10;
 printf("%d\n", MAX(a, b));
 system("pause");
 return 0;
}

原文地址:https://www.cnblogs.com/lsiyu/p/8933433.html

时间: 2024-11-13 09:36:44

程序环境和预处理的相关文章

httpd(apache)程序环境配置文件

CentOS 6:httpd-2.2程序环境:   配置文件:     /etc/httpd/conf/httpd.conf     /etc/httpd/conf.d/*.conf   服务脚本:     /etc/rc.d/init.d/httpd     脚本配置文件:/etc/sysconfig/httpd   主程序文件:     /usr/sbin/httpd     /usr/sbin/httpd.event     /usr/sbin/httpd.worker   日志文件:  

win7+Myeclipse10开发Hadoop应用程序环境搭建

1.复制linux下已配置安装好的hadoop目录进入windows, 同时修改hadoo-env.sh文件的JAVA_HOME为windows下的jdk目录. 2.复制hadoop-eclipse-1.2.jar插件进入myeclipse文件夹下dropins下 下载:我的文件下有一个以hadoop-eclipse1.2.rar文件(压缩包),下载下来,将后缀改为jar就可以了 3.重启myeclipse 4.配置:windows-Preference->windows下的hadoop目录 5

02 java 程序环境

java 安装与设置 1. 安装 jdk 2. 设置执行路径 unix: set path=(/usr/local/jdk/bin $path) ( 在~/.cshrc文件里增加) linux: export PATH=/usr/local/jdk/bin:$PATH (在 ~/.bashrc 或 ~/.bash_profile 文件里增加) windows: 我的电脑右键属性- 设置完后, java –version 可以确定是否设置成功 3. 安装源代码库和文档 1). 确保jdk已经安装完

1.2 lucene入门程序环境搭建及入门代码

 lucene入门程序环境搭建及入门代码 1.1      需求 使用lucene完成对数据库中图书信息的索引和搜索功能. 1.2      环境准备 l  Jdk:1.7及以上 l  Lucene:4.10(从4.8版本以后,必须使用jdk1.7及以上) l  Ide:indigo l  数据库:mysql 5 1.3      工程搭建 l  Mysql驱动包 l  Analysis的包 l  Core包 l  QueryParser包 l  Junit包(非必须) 创建po类 1 publ

C、Shell、Perl基于Tomcat开发CGI程序环境配置

基于Tomcat7.0版本配置CGI开发环境,步聚如下: 以我的Tomcat7安装目录为例:TOMCA_HOME = /Users/yangxin/Documents/devToos/java/apache-tomcat-7.0.39 1.打开TOMCA_HOME/conf/web.xml 将CGI的Serlvet配置与URL映射注释打开 <servlet> <servlet-name>cgi</servlet-name> <servlet-class>or

【黑马程序员】————预处理指令1-宏定义

预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号 3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾.习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 4.C语言提供的预处理指令主要有:宏

【黑马程序员】————预处理指令2-文件编译

条件编译的概念 在很多情况下,我们希望程序的其中一部分代码只有在满足一定条件时才进行编译,否则不参与编译(只有参与编译的代码最终才能被执行),这就是条件编译. 一.基本用法 1 #if 条件1 2 ...code1... 3 #elif 条件2 4 ...code2... 5 #else 6 ...code3... 7 #endif 1> 如果条件1成立,那么编译器就会把#if 与 #elif之间的code1代码编译进去(注意:是编译进去,不是执行,和平时用的if-else是不一样的)2> 如

【C】 02 - 程序结构和预处理

在正式进入C的语法之前,有必要对其整体外观和组成元素作一个浏览.这部分内容对大多数人是比较陌生的,但它们却是C的起点和骨架.而这些内容涉及的背景或细节又可以展开为专门的课题,这里也只是浅尝则止,说明个大概即可. 1. C程序组成 任何一个程序都首先以源文件(source file)的形式存在,它是一个普通的文本文件.C程序一般由一系列后缀为.c和.h的文件组成,前者包含了程序的执行内容,后者包含了各种声明或定义.其实文件名并不重要,这样的后缀名仅是约定俗成的习惯.但建议保持这样的风格,一是为了看

搭建scala 开发spark程序环境及实例演示

上一篇博文已经介绍了搭建scala的开发环境,现在进入正题.如何开发我们的第一个spark程序. 下载spark安装包,下载地址http://spark.apache.org/downloads.html(因为开发环境需要引用spark的jar包) 我下载的是spark-2.1.0-bin-hadoop2.6.tgz,因为我的scalaIDE版本是scala-SDK-4.5.0-vfinal-2.11-win32.win32.x86_64.zip 最好,IDE版本和spark版本要匹配,否则,开