Modify code example suggestion

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Anthony Minessale II 2005-01-19 02:34:59 +00:00
parent 581ae73586
commit 01a2a2a19f
1 changed files with 22 additions and 11 deletions

View File

@ -124,21 +124,32 @@ the scope of your function try ast_strdupa() or declare struts static
and pass them as a pointer with &.
If you are going to reuse a computable value, save it in a variable
instead of recomputing it over and over.
instead of recomputing it over and over. This can prevent you from
making a mistake in subsequent computations, make it easier to correct
if the formula has an error and may or may not help optimization but
will at least help readability.
Just an Example:
Just an example, so don't over analyze it, that'd be a shame:
const char *prefix = "pre";
const char *postfix = "post";
char *newname = NULL;
char *name = "data";
if (name && (newname = (char *) alloca(strlen(name) + strlen(prefix) + strlen(postfix) + 3)))
snprintf(newname, strlen(name) + strlen(prefix) + strlen(postfix) + 3, "%s/%s/%s", prefix, name, postfix);
if (strlen(name)) {
newname = alloca(strlen(name));
strncpy(newname, name, strlen(name);
}
vs
if((len = strlen(name))) {
newname = alloca(len);
strncpy(newname, name, len);
}
const char *prefix = "pre";
const char *postfix = "post";
char *newname = NULL;
char *name = "data";
int len = 0;
if (name && (len = strlen(name) + strlen(prefix) + strlen(postfix) + 3) && (newname = (char *) alloca(len)))
snprintf(newname, len, "%s/%s/%s", prefix, name, postfix);
Use const on pointers which your function will not be modifying, as this