linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘建议留言网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > article > Linux开发区 > 软件开发 >
栏目导栏
资料搜索
热门文章
·Linux 下 C 语言编程
·Linux下的通用线程池创建
·C++字符串转换篇
·linux C 进程操作篇
·linux上的C/C++编译器gcc/egcs
·linux C 文件权限控制篇
·GCC使用手册
·linux C 接口处理篇
·在Redhat Linux上安装 GCC 编译
·fopen()函数的参数说明
·C语言运算符
·GCC使用指南
·Linux下C开发环境的构成和安装
·GCC使用手册与常用命令
·Linux常用C函数-日期时间篇
最新文章
·epoll入门
·在Linux下发布程序需要注意版本
·Suse Linux系统下JAVA AWT界面
·Vim编译器配合ctags实现函数原
·在Ubuntu Linux 8.04上构建GCC
·Linux操作系统下Socket编程地址
·将VC程序移植到Linux系统的几点
·Linux下malloc/free与new/dele
·Linux下用GTK和socket实现简单
·Linux操作系统下让Tomcat启动在
·Linux操作系统中如何编译C程序
·几种常被人们忽略的Linux系统下
·Eclipse编程工具 在Ubuntu下的
·Linux操作系统下的网络地址转换
·老手经验谈:Linux驱动程序开发
Google
 
Linux 下 C 语言编程
[ 作者:Linux联盟收集  加入时间:2006-06-11 18:33:00  来自:Linux联盟收集 ]
  cproto 读入 C 源程序文件并自动为每个函数产生原型申明。 用 cproto 可以在写程序时为你节省大量用来定义函数原型的时间。  NiqLinux联盟
如果你让 cproto 处理下面的代码: 

#include  NiqLinux联盟
main () NiqLinux联盟
 NiqLinux联盟
{ NiqLinux联盟
 NiqLinux联盟
char my_string[] = "hello there"; NiqLinux联盟
 NiqLinux联盟
my_print (my_string); NiqLinux联盟
 NiqLinux联盟
my_print2(my_string); NiqLinux联盟
 NiqLinux联盟
} NiqLinux联盟
my_print (char *string) NiqLinux联盟
 NiqLinux联盟
{ NiqLinux联盟
 NiqLinux联盟
printf ("The string is %sn", *string); NiqLinux联盟
 NiqLinux联盟
} NiqLinux联盟
my_print2 (char *string) NiqLinux联盟
 NiqLinux联盟
{ NiqLinux联盟
 NiqLinux联盟
char *string2; NiqLinux联盟
 NiqLinux联盟
int size, size2, i; NiqLinux联盟
size = strlen (string); NiqLinux联盟
 NiqLinux联盟
size2 = size -1; NiqLinux联盟
 NiqLinux联盟
string2 = (char *) malloc (size + 1); NiqLinux联盟
 NiqLinux联盟
for (i = 0; i < size; i++) NiqLinux联盟
 NiqLinux联盟
string2[size2 - i] = string[i]; NiqLinux联盟
 NiqLinux联盟
string2[size] = `%content%'; NiqLinux联盟
 NiqLinux联盟
printf ("The string printed backward is %sn", string2); NiqLinux联盟
 NiqLinux联盟
}

  你将得到下面的输出: 

/* test.c */ NiqLinux联盟
 NiqLinux联盟
int main(void); NiqLinux联盟
 NiqLinux联盟
int my_print(char *string); NiqLinux联盟
 NiqLinux联盟
int my_print2(char *string);

  这个输出可以重定向到一个定义函数原型的包含文件里。 

  indent

  indent 实用程序是 Linux 里包含的另一个编程实用工具。 这个工具简单的说就为你的代码产生美观的缩进的格式。 indent 也有很多选项来指定如何格式化你的源代码。这些选项的更多信息请看indent 的指南页, 在命令行上键入 indent -h 。  NiqLinux联盟
 

  下面的例子是 indent 的缺省输出: 

  运行 indent 以前的 C 代码: 

#include  NiqLinux联盟
main () { NiqLinux联盟
 NiqLinux联盟
char my_string[] = "hello there"; NiqLinux联盟
 NiqLinux联盟
my_print (my_string); NiqLinux联盟
 NiqLinux联盟
my_print2(my_string); } NiqLinux联盟
my_print (char *string) NiqLinux联盟
{ NiqLinux联盟
printf ("The string is %sn", *string); NiqLinux联盟
 NiqLinux联盟
} NiqLinux联盟
my_print2 (char *string) { NiqLinux联盟
 NiqLinux联盟
char *string2; NiqLinux联盟
 NiqLinux联盟
int size, size2, i; NiqLinux联盟
size = strlen (string); NiqLinux联盟
 NiqLinux联盟
size2 = size -1; NiqLinux联盟
 NiqLinux联盟
string2 = (char *) malloc (size + 1); NiqLinux联盟
 NiqLinux联盟
for (i = 0; i < size; i++) NiqLinux联盟
 NiqLinux联盟
string2[size2 - i] = string[i]; NiqLinux联盟
 NiqLinux联盟
string2[size] = `%content%'; NiqLinux联盟
printf ("The string printed backward is %sn", string2); NiqLinux联盟
 NiqLinux联盟
}

  运行 indent 后的 C 代码: 

#include  NiqLinux联盟
main () NiqLinux联盟
{ NiqLinux联盟
char my_string[] = "hello there"; NiqLinux联盟
 NiqLinux联盟
my_print (my_string); NiqLinux联盟
 NiqLinux联盟
my_print2 (my_string); NiqLinux联盟
 NiqLinux联盟
} NiqLinux联盟
my_print (char *string) NiqLinux联盟
 NiqLinux联盟
{ NiqLinux联盟
printf ("The string is %sn", *string); NiqLinux联盟
my_print2 (char *string) NiqLinux联盟
{ NiqLinux联盟
char *string2; NiqLinux联盟
 NiqLinux联盟
int size, size2, i; NiqLinux联盟
size = strlen (string); NiqLinux联盟
 NiqLinux联盟
size2 = size -1; NiqLinux联盟
 NiqLinux联盟
string2 = (char *) malloc (size + 1); NiqLinux联盟
 NiqLinux联盟
for (i = 0; i < size; i++) NiqLinux联盟
 NiqLinux联盟
string2[size2 - i] = string[i]; NiqLinux联盟
 NiqLinux联盟
string2[size] = `%content%'; NiqLinux联盟
 NiqLinux联盟
printf ("The string printed backward is %sn", string2); NiqLinux联盟
 NiqLinux联盟
}

  indent 并不改变代码的实质内容, 而只是改变代码的外观。 使它变得更可读, 这永远是一件好事。 

  gprof

  gprof 是安装在你的 Linux 系统的 /usr/bin 目录下的一个程序。 它使你能剖析你的程序从而知道程序的哪一个部分在执行时最费时间。 

  gprof 将告诉你程序里每个函数被调用的次数和每个函数执行时所占时间的百分比。 你如果想提高你的程序性能的话这些信息非常有用。 

  为了在你的程序上使用 gprof, 你必须在编译程序时加上 -pg 选项。 这将使程序在每次执行时产生一个叫 gmon.out 的文件。 gprof 用这个文件产生剖析信息。 

  在你运行了你的程序并产生了 gmon.out 文件后你能用下面的命令获得剖析信息: 

  gprof 

  参数 program_name 是产生 gmon.out 文件的程序的名字。 

  技巧: gprof 产生的剖析数据很大, 如果你想检查这些数据的话最好把输出重定向到一个文件里。 

  f2c 和 p2c

  f2c 和 p2c 是两个源代码转换程序。 f2c 把 FORTRAN 代码转换为 C 代码, p2c 把 Pascal 代码转换为 C 代码。 当你安装 GCC 时这两个程序都会被安装上去。 

  如果你有一些用 FORTRAN 或 Pascal 写的代码要用 C 重写的话, f2c 和 p2c 对你非常有用。 这两个程序产生的 C 代码一般不用修改就直接能被 GCC 编译。 

  如果要转换的 FORTRAN 或 Pascal 程序比较小的话可以直接使用 f2c 或 p2c 不用加任何选项。 如果要转换的程序比较庞大, 包含很多文件的话你可能要用到一些命令行选项。  NiqLinux联盟
NiqLinux联盟
  一个 FORTRAN 程序上使用 f2c , 输入下面的命令: 

  f2c my_fortranprog.f

  注意: f2c 要求被转换的程序的扩展名为 .f 或 a .F 。  NiqLinux联盟
 NiqLinux联盟
  要把一个Pascal 程序装换为 C 程序, 输入下面的命令: 

  p2c my_pascalprogram.pas

  这两个程序产生的 C 源代码的文件名都和原来的文件名相同, 但扩展名由 .f 或 .pas 变为 .c 。

Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
分页:1 2 3 [4]
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息