 # Your snippets
 
-# C++ and JavaScript
-
-'.source.cpp,
+# C, C++ and JavaScript
+
+'.source.c,
+ .source.cpp,
  .source.js':
 
   # Conditional blocks

    'prefix': 'inc'
    'body': '#include $1'

  'include iostream':
    'prefix': 'incio'
    'body': '#include <iostream>\n'

  'using namespace std':
    'prefix': 'using'
    'body': 'using namespace std;\n'

  'for':
    'prefix': 'for'
    'body': 'for (int ${1:i} = ${2:0}; ${1:i} < ${3:end}; ${1:i}${4:++}) {\n\t$5\n}'

  'function':
    'prefix': 'f'
    'body': '${1:void} ${2:fname}($3) {\n\t$4\n}'

  'function method':
    'prefix': 'fm'
    'body': '${1:void} ${2:Class}::${3:fname}($4) {\n\t$5\n}'

  'struct':
    'prefix': 'struct'
    'body': 'struct ${1:Struct} {\n\t$2\n};'

  'constructor definition':
    'prefix': 'ctor'
    'body': '${1:Class}::${1:Class}($2) {\n\t$3\n}'

  'destructor definition':
    'prefix': 'dtor'
    'body': '${1:Class}::~${1:Class}() {\n\t$3\n}'

  'class':
    'prefix': 'class'
    'body': 'class ${1:Class} {\n\t$2\n};'

  'public blocks':
    'prefix': 'public'
    'body': 'public:\n\t$1'

  'private blocks':
    'prefix': 'private'
    'body': 'private:\n\t$1'

  'protected blocks':
    'prefix': 'protected'
    'body': 'protected:\n\t$1'

  'this pointer access':
    'prefix': 'this'
    'body': 'this->'

    'prefix': 'while'
    'body': 'while (${1:condition}) {\n\t$2\n}'

  # Switch constructs

  'switch':
    'prefix': 'switch'
    'body': 'switch (${1:variable}) {\n\t$2\n}'

  'case':
    'prefix': 'case'
    'body': 'case ${1:value}:\n\t$2'

# C++ and JavaScript


'.source.cpp,
 .source.js':

  # Error handling

  'try':
