标签归档:C语言

C语言及Python命令行参数解析 – getopt

在编写各种命令行程序甚至是GUI程序时,经常需要对命令行参数进行解析处理,以控制程序的执行。当只需要按顺序处理各参数时,可以通过简单地遍历各参数实现。如果要处理稍复杂的命令行参数,则可以使用短选项参数(-a-a arg)与长选项参数(--name--name=arg)。注:短选项-abc-a -b -c等同。

在C语言中,对于短选项参数可以使用getop函数。下面代码摘自http://en.wikipedia.org/wiki/Getopt

#include <stdio.h>     /* for printf */
#include <stdlib.h>    /* for exit */
#include <unistd.h>    /* for getopt */

int 

深入理解 C/C++(Olve Maudal & Jon Jagger)笔记

  1. main无显式返回时,程序返回值为最后的函数调用的返回值。
  2. 对于函数定义void func(),C语言表示func接受任意数目、任意类型的参数;C++语言表示不接受参数,相当于void func(void)。若C语言希望函数不接受参数,需要显示声明为void func(void)
  3. 对于全局&局部static变量,在C语言中初始化为0;在C++中初始化为它的默认值(内置类型为0)。对于auto变量,不进行初始化(对函数内的auto变量进行初始化影响性能?),但deubg(非优化)时可能会被初始化为0;当连续多次对包含auto变量的函数进行调用时,变量可能每次分配到相同内存(Execution Stack or Activation Frames)。
  4. 函数外部非static变量自动初始化为0,且全局可见(链接器允许其它对象文件访问该变量);函数外部static变量自动初始化0,仅本编译单元可见。
  5. C/C++在一个序列点(Sequence Point)对一个变量只能更新一次,a =