Skip to content

C/C++ style guide #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions C++_Style_Guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Secure Systems Lab C/C++ Style Guide

These guidelines provide examples of what to do (or not to do) when writing
C/C++ code for the projects of the Secure Systems Lab in the NYU Tandon School
of Engineering.

The style guide provided here is intended to improve the readability of code and
make it consistent across the wide spectrum of C/C++ code. The features that your
code must have are readability, security, correctness, robustness and performance.

In general for C/C++ programming languages we use [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html).

Since security is an important for Secure Systems Lab, we also should follow some
security rules.

* For secure C++ coding please have a look follow link:
[The C++ rules.](https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637)

* For secure C coding please have a look follow link:
[The C rules.](https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard)

### See Also

Five particularly important books related to C++ are:

1. [Effective C++](https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876/ref=sr_1_1?ie=UTF8&qid=1492226150&sr=8-1&keywords=effective+c%2B%2B):
55 Specific Ways to Improve Your Programs and Designs by Scott Meyers.
2. [Effective Modern C++](https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=sr_1_2?ie=UTF8&qid=1492226150&sr=8-2&keywords=effective+c%2B%2B):
42 Specific Ways to Improve Your Use of C++11 and C++14 by Scott Meyers.
3. Also interesting and useful are [More Effective C++](https://www.amazon.com/More-Effective-Improve-Programs-Designs/dp/020163371X/ref=sr_1_4?ie=UTF8&qid=1492226150&sr=8-4&keywords=effective+c%2B%2B) and [Effective STL](https://www.amazon.com/Effective-STL-Specific-Standard-Template/dp/0201749629/ref=sr_1_5?ie=UTF8&qid=1492226150&sr=8-5&keywords=effective+c%2B%2B)
by Scott Meyers.
4. [Large-Scale C++ Software Design](https://www.amazon.com/Large-Scale-Software-Design-John-Lakos/dp/0201633620/ref=sr_1_1) by John Lakos.
5. [The C++ Programming Language](https://www.amazon.com/C-Programming-Language-4th/dp/0321563840), 4th Edition by Bjarne Stroustrup.

Two books related to C are:

1. [The C Programming Language](https://www.amazon.com/Programming-Language-Brian-W-Kernighan/dp/0131103628) by Brian W. Kernighan and Dennis M. Ritchie.
2. [Expert C Programming: Deep C Secrets](https://www.amazon.com/Expert-Programming-Peter-van-Linden/dp/0131774298) by Peter van der Linden.

If you have not read them yet, we highly recommend you to read, you might learn
something.