Skip to content

Latest commit

 

History

History
139 lines (116 loc) · 4.87 KB

README.md

File metadata and controls

139 lines (116 loc) · 4.87 KB

Overview

It's a project mainly about introducing C, meanwhile, a certain amount of CPP is involved . It aims to become a useful reference to look up the key usage of features in C and obeys the modern standard as much as possible.

  • lcthw is the handy practice on the book Learn C the Hard way by Zed A Shaw.
  • library is third party library.
    • GSL is used to assist scientific computation supported by GNU Scientific Library.
    • POSIX make use of the hardware's improvements.

Main features

  • Documentation

    Make documentation for part of the code base.

    Doxygen is not an idea tool to make documentation to me, I really can't agree with its taste. (I was wrong, I didn't know what I was talking about.)

    Basic procedure

    • doxygen -g

    • customize Doxyfile

      eg: Modify the items as below

      PROJECT_NAME           = "C Training"
      PROJECT_NUMBER         = "1.0"
      # Where to put the file generated by doxygen Doxyfile
      OUTPUT_DIRECTORY       = "docs"
      # Extract the comment from all source code in the specified directory
      EXTRACT_ALL            = YES
      QUIET                  = YES
      # Specify what to include in documentation.
      INPUT                  = LeetCode/Tree LeetCode/LinkedList
      RECURSIVE              = YES
      GENERATE_LATEX         = NO
      
    • doxygen Doxyfile

    • Edit code comment while checking index.html in a browser.

    • publish it to github pages

      https://goseeky.wordpress.com/2017/07/22/documentation-101-doxygen-with-github-pages/

    🎸 slate an API generator

  • New features on C

    • Object Oriented programming
    • Generic programming
  • Informative

    • Basic
      • Library
      • Array
        • Dynamic array
      • Pointer
      • Function
      • Memory management
    • Advanced
      • OOP
      • multithreading
      • Error handling
    • Data structure
      • Linked List

      • Stack

      • Queue

      • Heap

      • Hash table

        • Linear probing
        • Chaining
        • Re-Hashing
      • tree

        • Binary tree
        • Binary search tree
        • AVL Tree
        • Red black tree
          • beta version
        • B Tree
        • B+ Tree
      • Graph

        • Breadth-First search
        • Depth-First search
        • shorted-path algorithm
    • Algorithm
      • Sort
        • Bubble sort
        • Select sort
        • Quick sort
        • Merge sort
        • Heap sort
        • Bucket sort
        • Counting sort
        • Insertion sort
        • Radix sort
      • Search
        • Binary search
    • Third-party library
      • Database
        • PostgreSQL
        • redis
      • GNU Scientific Library
      • Test framework
  • writing robust code

    • Debug
    • Automated test

Memory leak testing

  • Applying Docker to solve the the problem of no proper Valgrind for a specific OS version.
  • Developing inside a Container!

    The Visual Studio Code Remote - Containers extension lets you use a Docker container as a full-featured development environment. It allows you to open any folder inside (or mounted into) a container and take advantage of Visual Studio Code's full feature set.

gdb usage

Configure a handy text editor

Warnings and directions

The small program is tomorrow's building block in a larger project. So avoid writing any one program ugly, think it over and over to make it robust and exquisite.

There are some standards to test whether or not you are qualified to do the programming job. You shouldn't say things like -I have no idea of how to be a qualified programmer again.

Standards to tell you whether or not you are qualified

It's not hard to be a good programmer compared with to be a good physicist.

There are many resources already available online. You need to go through several tests. You can clearly see different stages which you are in along the way toward realizing what you long for.