An open API service indexing awesome lists of open source software.

https://github.com/harry-ross/c-snippets

A simple extension for Visual Studio Code snippets for the C programming language.
https://github.com/harry-ross/c-snippets

c snippets visual-studio

Last synced: 4 months ago
JSON representation

A simple extension for Visual Studio Code snippets for the C programming language.

Awesome Lists containing this project

README

          

# C Snippets

This extension provides a simple set of VSCode snippets for the C programming language. Can be found [here on the Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=Harry-Ross-Software.c-snippets).

![Visual Studio Marketplace Rating (Stars)](https://img.shields.io/visual-studio-marketplace/stars/Harry-Ross-Software.c-snippets)
![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/Harry-Ross-Software.c-snippets)
![Visual Studio Marketplace Downloads](https://img.shields.io/visual-studio-marketplace/d/Harry-Ross-Software.c-snippets)
![GitHub package.json version](https://img.shields.io/github/package-json/v/Harry-Ross/vscode-c-snippets)
![GitHub repo size](https://img.shields.io/github/repo-size/Harry-Ross/vscode-c-snippets)
![GitHub](https://img.shields.io/github/license/Harry-Ross/vscode-c-snippets)

# List of snippets:
| Snippet Description | Snippet Input | Snippet Code |
| ----------------------------- | ------------- | ---------------------------------------------------------------------------------------------------------- |
| Starter Template | `sst` | #include
int main (int argc, char *argv[]) {
   return 0;
} |
| Starter template with stlib.h | `libsst` | #include
#include
int main (int argc, char *argv[]) {
   return 0;
} |
| Conditionals and loops | | |
| If statement| `if` | if (expression) {
   /* code here */
}
|
| Else if statement | `elif` | elseif (expression) {
   /* code here */
}
|
| Else statement | `else` | else {
   /* code here */
}
|
| For loop | `for` | for (int i = 0; i < count; i++) {
   /* code here */
}
|
| While loop | `while` | while (expression) {
   /* code here */
}
|
| Do...while loop | `dowhile` | do {
   /* code here */
} while (expression)
|
| Header file include guard | `ig` | #ifndef {transformed_file_name}
#define {transformed_file_name}

// Code for header body

#endif {transformed_file_name}
|
| Linked lists | | |
| Linked list template | `clist` | typedef struct _node * Link;
typedef struct _node node;
struct _node {
   int value;
   Link next;
}; |
| Functions | | |
| Create int function | `intfunc` | int func_name () {
   int x;
   return x;
} |
| Create float function | `flfunc` | float func_name () {
   float x;
   return x;
} |
| Create string function | `strfunc` | char[] func_name () {
   char[] x = {};
   return x;
} |
| Create long function | `longfunc` | long func_name () {
   long x;
   return x;
} |
| Create definition for virtual table| `vtdef` | typedef struct {ClassName}{
struct {ClassNameVT}* vt;
};

typedef struct {ClassNameVT}
{
// Virtual Table Function definitions
} ${virtualTable Name};

int {ClassNameInit}(struct {ClassName} *self);
int {ClassNameDestroy}(struct {ClassName} **self); |
| Create function for virtual table| `vtfunc` | {ReturnType} (*{FunctionName})(struct {ClassName} *self) |
| Print statements | | |
| Print variable of type float (2 decimal places) | `pflo` | printf(\"var_name :>> %.2f\\n\", var_name); |
| Print variable of type int | `pint` | printf(\"var_name :>> %d\\n\", var_name); |
| Print variable of type char | `pcha` | printf(\"var_name :>> %c\\n\", var_name); |
| Print variable of type pointer | `ppoint` | printf(\"var_name :>> %p\\n\", (void *) var_name); |
| Print variable of type size_t | `psiz` | printf(\"var_name :>> %zu\\n\", var_name); |
| Memory Allocation | | |
| Allocate memory using calloc | `cal` | {type} *ptr = ({type}*)calloc(, sizeof({type}));
if (ptr == NULL) {
   printf("Memory allocation failed!\n");
   exit(0);
}
free(ptr);
|

#### Contributors: [Harry Ross](https://github.com/Harry-Ross) and [Luca Merzetti](https://github.com/lucamerzi)