1 | /*****************
2 | $Header: /home/amb/cxref/doc/RCS/README.c 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. */