Programming notes: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 13: | Line 13: | ||
} |
} |
||
</pre> |
</pre> |
||
Much cleaner is this: |
|||
<pre> |
<pre> |
||
if (i==2) |
if (i==2) |
||
Line 40: | Line 40: | ||
<li> |
<li> |
||
The following is |
The following is a surprisingly common programming mistake: |
||
<pre> |
<pre> |
||
double x, y; |
double x, y; |
||
Line 51: | Line 51: | ||
<pre> |
<pre> |
||
#define EPS 1e-9 /* or some other threshold small enough for your purposes */ |
#define EPS 1e-9 /* or some other threshold small enough for your purposes */ |
||
double x, y; |
double x, y; |
||
if (fabs(x-y) < EPS) |
if (fabs(x-y) < EPS) |
Revision as of 21:44, 27 June 2014
This is a collection of miscellaneous thoughts on coding style recommended for use in our lab.
Notes on C
- Don't put multiple commands on a single line. One command per line.
- For symmetry reasons, I dislike this layout:
if (i==2){ i++; }
Much cleaner is this:
if (i==2) { i++; }
- For clarity, I prefer indentations to be 8 spaces (not 4). If you follow this, you'll be in good company. Insert the following snippet in your ~/.emacs file:
(defconst my-c-style '((c-basic-offset . 8) (c-offsets-alist . ((substatement-open . 0) ) ) ) "C Style") (defun my-c-mode-common-hook () (c-add-style "personal" my-c-style t) (setq fill-column 135) ) (add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
-
The following is a surprisingly common programming mistake:
double x, y; if (x == y) { do_something(); }
Due to rounding errors, you should not test for exact equality between two floating point numbers (or a floating point number and a constant). Instead, do:
#define EPS 1e-9 /* or some other threshold small enough for your purposes */ double x, y; if (fabs(x-y) < EPS) { do_something(); }