diff --git a/doc/CODING-GUIDELINES b/doc/CODING-GUIDELINES index 7239f475cf..175fb53804 100755 --- a/doc/CODING-GUIDELINES +++ b/doc/CODING-GUIDELINES @@ -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