1 | /***************** 2 | $Header: /home/amb/CVS/cxref/doc/README.c,v 1.4 1997-05-26 11:23:40 amb Exp $ 3 | 4 | A comment for the file, RCS header comments are treated specially when first. 5 | *****************/ 6 | 7 | 8 | 9 | /*+ A #include comment +*/ 10 | #include <stdio.h> 11 | 12 | 13 | #include <math.h> /*+ An alternative #include comment. +*/ 14 | 15 | 16 | /*+ A #define comment. +*/ 17 | #define def1 1 18 | 19 | 20 | #define def2 2 /*+ An alternative #define comment. +*/ 21 | 22 | 23 | /*+++++++++++ 24 | A #define with args 25 | 26 | arg1 The first arg 27 | 28 | arg2 The second arg 29 | +++++++++++*/ 30 | 31 | #define def3(arg1,arg2) (arg1+arg2) 32 | 33 | 34 | /*+ An alternative #define with args. +*/ 35 | 36 | #define def4(arg1 /*+ The first arg +*/, \ 37 | arg2 /*+ The second arg +*/) \ 38 | (arg1+arg2) 39 | 40 | 41 | /*+ An example typedef comment +*/ 42 | typedef enum 43 | { 44 | one, /*+ one value +*/ 45 | two /*+ another value +*/ 46 | } 47 | type1; 48 | 49 | 50 | /*+ Another example typedef comment, +*/ 51 | typedef struct 52 | { 53 | int a; /*+ A variable in a struct. +*/ 54 | union bar 55 | { 56 | char a; /*+ Each element +*/ 57 | int b, /*+ of a struct +*/ 58 | c; /*+ or a union +*/ 59 | long d; /*+ can have a comment +*/ 60 | } 61 | e; /*+ Nested structs and unions also work. +*/ 62 | } 63 | type2, /*+ a type that is a struct. +*/ 64 | *ptype2; /*+ a pointer to a struct type. +*/ 65 | 66 | 67 | /*+ A leading comment only. +*/ 68 | int var1,var2; 69 | 70 | 71 | static int var3; /*+ A trailing comment only. +*/ 72 | 73 | 74 | /*+ A variable for +*/ 75 | int var4, /*+ one thing. +*/ 76 | var5, /*+ a second thing. +*/ 77 | var6; /*+ a third thing. +*/ 78 | 79 | /* Note: The leading comment is combined with each of the trailing comments. */ 80 | /* Note: the push through of the comment above on the ',' and ';', see README. */ 81 | 82 | 83 | /*+++++++++++ 84 | A function comment (the comments for the args need to be separated by a blank line). 85 | 86 | int function1 The return value. 87 | 88 | int arg1 The first argument. 89 | 90 | int arg2 The second argument. 91 | 92 | Some more comments 93 | 94 | +none+ Note: this line and the two below are processed specially. 95 | +html+ This comment is only visible in the HTML output, and can contain HTML markup. 96 | +latex+ This comment is only visible in the \LaTeX output, and can contain \LaTeX markup. 97 | +++++++++++*/ 98 | 99 | int function1(int arg1,int arg2) 100 | { 101 | /*+ An internal comment in a function that appears as a 102 | new paragraph at the end of the comment. +*/ 103 | 104 | var1=0; 105 | 106 | function2(var3,var4); 107 | } 108 | 109 | 110 | /*+ An alternative function comment +*/ 111 | 112 | int function2(int arg1, /*+ The first argument. +*/ 113 | int arg2) /*+ The second argument. +*/ 114 | /*+ Returns a value +*/ 115 | { 116 | int (*funcp)()=&function1; 117 | } 118 | 119 | /* Note: the push through of the comment above on the ',' and ')', see README. */