20170426

如果一个里面需要经过复杂的处理才能得到一个结果数字,则这个宏必须写成一个表达式
  1 /*
  2     宏演示
  3  */
  4 #include <stdio.h>
  5 #define SQUARE(n)   ((n) * (n))
  6 int main() {
  7     int num = 4;
  8     printf("%d\n", SQUARE(++num));//((++num) * (++num)),第一个++num,num为5,第二个++num,num为6,然后相乘36
  9     return 0;
 10 }
结果:36
宏操作符包括#和##
#操作符可以把宏的一个参数转换成字符串字面值
  1 #include <stdio.h>
  2 #define STR(n)  #n
  3 int main() {
  4     printf("%s\n", STR(abc));
  5     return 0;
  6 }
  STR(abc)先替换成 #abc, 然后二次替换 "abc"
##操作符可以把一个代表标识符参数和其它内容合并形成一个新的标识符
  1 #include <stdio.h>
  2 #define LOCAL(n)    l_##n
  3 int main() {
  4     int LOCAL(num) = 0;
  5     printf("%d\n", LOCAL(num));
  6     return 0;
  7 }
LOCAL(num)先替换成l_##num,然后二次替换为l_num(##抛弃)

条件编译可以在编译时只编译某些语句而忽略另外一些语句
#ifdef(#ifndef) <宏名称>
    ...
#else
    ...
#endif
以上语句结构可以根据某个宏是否被定义过而从两组语句中选择一组编译
  1 /*
  2     条件编译
  3  */
  4 #include <stdio.h>
  5 int main() {
  6 #ifdef  ONE
  7     printf("1\n");
  8 #else
  9     printf("2\n");
 10 #endif
 11     return 0;
 12 }
如果定义了ONE的宏,执行第7行,否则执行第8行

#ifndef 表示没有定义过

#if        逻辑表达式
    ...
#elif    逻辑表达式(多个)
    ...
#else
    ...
#endif
以上结构可以根据任何逻辑表达式多组语句中选择一组编译
  1 /*
  2     折扣
  3  */
  4 #include <stdio.h>
  5 int main() {
  6 #if defined(FACTORY)
  7     printf("80%%\n");
  8 #elif !defined(FACTORY) && !defined(ELITE)
  9     printf("100%%\n");
 10 #else
 11     printf("120%%\n");
 12 #endif
 13     return 0;
 14 }

多文件程序编写时,某个函数必须属于某个文件,一个文件中可以包含多个函数
  1 /*
  2     多文件编程演示
  3  */
  4 #include <stdio.h>
  5 int add(int x, int y) {
  6     return x + y;
  7 }
  8
  9 int main() {
 10     printf("%d\n", add(3, 6));
 11     return 0;
 12 }

时间: 2024-10-14 01:42:56

20170426的相关文章

炒股日记-20170426(糟糕的一天)

针对这一只股票,在昨天我买了900股,为什么买这只,原因有2: (1)这几只家电股都是白马股,还有格力电器,美的集团,苏泊尔,老板电器,小天鹅A,华帝股份 (2)这只股刚好走完三个回调 在今天涨幅最高达到6.18%,最后跌幅4.67%,中途我还补了一波.这只股总计亏损1150元.如果在5个多点卖了,稳赚1000多. 最后的跌幅是我没有预料到的,我的预期是回调完了,会有个不错的收盘,然后明天还有涨一波. 所以只能学会一个成语:落袋为安 老板电器也是一直不错的家电股,在今天看着所有家电都在上涨的情况

CSDN日报20170426 ——《四无年轻人如何逆袭》

[程序人生]四无年轻人如何逆袭 作者:安晓辉 一个问题:"普普通通的年轻人,没关系没资源,没有一技之长,没有什么兴趣爱好,该如何逆袭?" 这是我收到的众多类似问题中的一个.看起来有很多人都正为此类困惑.但实际上,它的答案却是人尽皆知的,只是我们不愿意接受这个答案. 点击阅读全文 [Java]Hibernate 的优化方案 作者:李阿昀 Hibernate 这个框架是在 Dao 层进行操作的,如果说我现在采用了一个 load 的方案去获取了一个对象,我们最终会把 Session 关闭再返

python——常用模块

time.asctime(time.localtime(1234324422)) python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型.

mysql-学习-2

mysql-学习-20170426 mysql的安装: 如何下载mysql? **切记需要从官网下载** http://dev.mysql.com mysql被Oracle收购后引入进来的一个版本概念: DMR xx-net  :FQ工具 非常优秀  https://github.com/XX-net/XX-Net/wiki/%E4%BD%BF%E7%94%A8Chrome%E6%B5%8F%E8%A7%88%E5%99%A8 下载页面: https://dev.mysql.com/downlo

python基础-------模块

在python中,只有函数,类,模块能开辟出作用域,for循环跟while循环,还有if语句是不能开辟作用域的 模块:模块就是.py文件 1,时间模块:time模块 1 import time 2 #1时间戳:是一个float类型 3 print(time.time()) #从1970年1月1日0点0分,到目前走了多少秒 4 #1493189111.495058 5 6 #2格式化时间字符串: 给人看的 7 print(time.strftime("%Y-%m-%d %X")) #%Y

python cookbook第三版学习笔记五:datetime

Python中表示时间的模块是datetime,引入下面的模块 from datetime import datetime,timedelta print datetime.today()  #打印出当前的时间 E:\python2.7.11\python.exe E:/py_prj/python_cookbook.py 2017-04-26 21:58:05.663000 我们还可以对时间进行加减操作.这里要用到timedelta模块 这个模块有5个重要参数分别是days,minutes,se

phpstorm register

最新版PhpStorm 2017正式版改进了PHP 7支持,改进代码完成功能. PhpStorm 是最好的PHP开发工具,使用它进行PHP开发将会让你感觉到编程的乐趣. 快乐无极终于从oschina看到了注册方法: phpstorm已经升级到2017.1,原注册码失效,2017.1.2注册方法:注册时选择"License server"输入 http://idea.lanyus.com/ (已被封杀) 或者: http://idea.qinxi1992.cn/点击"OK&qu

每天一个Linux命令(2):ls命令

版权声明 更新:2017-04-26博主:LuckyAlan联系:[email protected]声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍本文介绍了Linux下命令ls. 2 开发平台接扫开发平台 3 阅前须知提示信息,比如预先知道的知识,需要先看哪些博客 4 文章正文ls(list segment,列出分割)用于列出文件,是一个由POSIX和单一Unix标准规范的命令.我们可以使用ls命令: 打印当前目录的文件或文件夹清单 指定目录里的文件或文件夹清单 查看文件.文件夹.文件目录

Again Stone Game

Alice and Bob are playing a stone game. Initially there are n piles of stones and each pile contains some stone. Alice stars the game and they alternate moves. In each move, a player has to select any pile and should remove at least one and no more t