Skip to content

Latest commit

 

History

History
160 lines (111 loc) · 5.11 KB

readme.md

File metadata and controls

160 lines (111 loc) · 5.11 KB
C

C-Programming-Language

GitHub Repo stars GitHub last commit GitHub repo size

Welcome to the C-Programming-Language repository! This is my personal journey of learning the C. It contains my practice programs, experiments, and notes as I explore C concepts and improve my skills.

📝 Table of Contents


🎯 Introduction

C is a powerful and widely-used programming language, known for its efficiency and close-to-hardware capabilities. This repository is my personal sandbox to:

  • Understand C syntax and concepts.
  • Practice problem-solving using C.
  • Experiment with different coding techniques and tools.

🤔 Why This Repository

This repository is primarily for my learning and self-improvement. By sharing my progress publicly, I hope to:

  • Document my journey in a structured way.
  • Receive constructive feedback from the community.
  • Help others who might be starting their own journey in C.

📚 Book Reference

The book I will be following and referencing throughout this repository is the C Programming Language - 2nd Edition (OCR). This book will serve as the primary guide for the C programming concepts, examples, and exercises found in this repository.


🚀 Getting Started

If you're here to follow along or try out the programs, you'll need:

  • A C compiler such as GCC or Clang.
  • A text editor or IDE of your choice (e.g., Vim, Visual Studio Code, etc.).

Clone the Repository

git clone https://github.com/Gurjaka/C-Programming-Language.git
cd C-Programming-Language

Compile and Run a Program

Navigate to the directory containing the program you want to run and compile it using:

cc program_name.c -o ./compiled/program_name
./compiled/program_name

For example:

cc hello_world.c -o ./compiled/hello_world
./compiled/hello_world

🗂️ Directory Structure

The directory structure of this repository is as follows:

C-Programming-Language/
├── assets
├── LICENSE
├── readme.md
├── src
│   ├── 1.0-non-book-related
│   ├── 1.1-getting-started
│   ├── 1.2-variables-arithmetic-expressions
│   ├── 1.3-for-statement
│   ├── 1.5-character-input-output
│   ├── 1.6-arrays
│   ├── 1.7-functions
│   ├── 1.8-arguments-call-by-value
│   ├── 1.9-character-arrays
│   ├── 1.10-external-variables-and-scope
├── tasks
│   ├── Chapter-1:Tutorial-Introduction
│   ├── Chapter-2:Types-Operators-Expressions
│   ├── Chapter-3:Control-Flow
│   ├── Chapter-4:Functions-Program-Structure
│   ├── Chapter-5:Pointers-Arrays
│   ├── Chapter-6:Structures
│   ├── Chapter-7:Input-Output
│   └── Chapter-8:The-UNIX-System-Interface
└── tmux.sh

Note: Each chapter includes its exercises and compiled programs. The "Tasks" directory contains Markdown files with descriptions for the exercises.


🖥️ Tmux

The tmux.sh script sets up a custom tmux session for an organized development environment. It creates a tmux session named "C", splits the terminal window into multiple panes for different tasks, and launches relevant programs in each pane. This setup allows the user to code, track tasks, compile and run a programs simultaneously in a single terminal session.

Layout:

 _________________________________
|                     |   TASKS   |
|                     |   NVIM    |
|                     |___________|
|        CODE         |           |
|        NVIM         |           |
|                     |    GCC    |
|                     |           |
|_____________________|___________|

🤝 Contributing

While this is a personal learning project, contributions are welcome if you'd like to:

  • Suggest improvements to my code.
  • Share insights or tips for better coding practices.
  • Point out mistakes or bugs.

Feel free to fork the repository, make your changes, and open a pull request. Please include clear comments explaining your changes.


📜 License

This repository is licensed under the MIT License. Feel free to use, modify, and distribute the code in this repository. See the LICENSE file for details.


Thanks for visiting! 😊