Firebird Coding Style Guides

Style guide for Firebird core sources

Writing FB code every coder should keep in mind these rules:

  • Configure your editor to use 4 position for tabstop.

  • indent: 1 tab

  • space after e.g. if/for/while/switch - do "if (", not "if(".

  • no spaces allowed between function name and leading left paren - do "foo()", not "foo ()".

  • spaces around operation - do "c = a + b;"

  • spaces between function's parameters

  • no spaces with pointer sign - do "*p++ = *q++" and "char *a".

  • Mandatory braces around scoped code. Closing brace always aligned to the first char of the keyword introducing the scope - i.e.

    if (foo) {
        // code


    if (foo)

    first form is not allowed if condition exeeds one line. Braces may be omitted only if condition doesn't exceed one line and conditional statement also doesn't exceed one line.

  • No spaces in C++ cast expressions. Do "static_cast(ptr)", not "static_cast < type * > ( ptr )".

  • Prefer to keep lines shorter than 80 chars.

  • Prefer initialization over assignment.

  • Don't break the build. Before commiting do full build cycle from scratch (on all available platforms).

  • Always end source files, including headers, with a newline.

  • Prefer C++ style for comments

  • Use abstract datatypes (UCHAR, SSHORT, ULONG etc) instead of generic ones (unsigned char, short, unsigned long resp) because generic types can be changed unexpectedly (long int become 64 bits for example).