title: FreeRTOS Hungarian Notation
body: <p>I'm a complete newbie in RTOS and C programming, and I'm still getting used to the C good practices yet. So I opened a project which uses FreeRTOS, and I notice that the OS files use the Hungarian Notation. I know the notation a little, but faced some new "standards" in the <code>FreeRTOS.h</code> file, which are:</p>
  
  <pre><code>#ifndef configASSERT
      #define configASSERT( x )
      #define configASSERT_DEFINED 0
  #else
      #define configASSERT_DEFINED 1
  #endif
  </code></pre>
  
  <p>And below that,</p>
  
  <pre><code>#ifndef INCLUDE_xTaskGetSchedulerState
      #define INCLUDE_xTaskGetSchedulerState 0
  #endif
  
  #ifndef INCLUDE_xTaskGetCurrentTaskHandle
      #define INCLUDE_xTaskGetCurrentTaskHandle 0
  #endif
  </code></pre>
  
  <p>I've seen this <strong>x</strong> - as in <strong><em>x</strong>TaskGetCurrentTaskHandle</em> - everywhere. Also, <strong>v</strong>, <strong>pd</strong> and variable names like that, like in line <code>728</code> of the header in question:</p>
  
  <pre><code>#if configENABLE_BACKWARD_COMPATIBILITY == 1
      #define eTaskStateGet eTaskGetState
      #define portTickType TickType_t
      #define xTaskHandle TaskHandle_t
      #define xQueueHandle QueueHandle_t
      #define xSemaphoreHandle SemaphoreHandle_t
      #define xQueueSetHandle QueueSetHandle_t
      #define xQueueSetMemberHandle QueueSetMemberHandle_t
      #define xTimeOutType TimeOut_t
      #define xMemoryRegion MemoryRegion_t
      #define xTaskParameters TaskParameters_t
      #define xTaskStatusType TaskStatus_t
      #define xTimerHandle TimerHandle_t
      #define xCoRoutineHandle CoRoutineHandle_t
      #define pdTASK_HOOK_CODE TaskHookFunction_t
      #define portTICK_RATE_MS portTICK_PERIOD_MS
  
      /* Backward compatibility within the scheduler code only - these definitions
      are not really required but are included for completeness. */
      #define tmrTIMER_CALLBACK TimerCallbackFunction_t
      #define pdTASK_CODE TaskFunction_t
      #define xListItem ListItem_t
      #define xList List_t
  </code></pre>
  
  <p>I've searched everywhere what would those "initials" stand for, but still could not figure that out. </p>
  
  <p>So, if anyone could help me to understand this, or could show me a path or something, I'd be really grateful.</p>