Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE 2541 – Advanced C Programming Instructor: Yang Zhang

Similar presentations


Presentation on theme: "CSE 2541 – Advanced C Programming Instructor: Yang Zhang"— Presentation transcript:

1 CSE 2541 – Advanced C Programming Instructor: Yang Zhang Zhang.863@osu.edu

2 Course info Prereq – CSE 2221 or CSE 222 Co-req – CSE 2231 Website – http://www.cse.ohio-state.edu/~zhangya/2451/

3 Brief history of C 1970’s – Unix – C, from BCPL (Thompson and Ritchie) C programming Language – Widely used like the others: Fortran, Pascal – Main form of language for system programming – Available on any machine with C compiler and library

4 Why C? Popular language – Operating systems (Win, Linux, FreeBSD) – Web servers (Apache) – Web browsers (Fox) – Mail servers (sendmail, postfix) – DNS servers (bind) – Graphics card programming (OpenCL) Programming language rankings Why? – Performance – Portability – Familiar to programmers

5 Why C? Compared to assembly language – Abstracts the hardware view (registers, memory, call stacks), making code portable and easier – Provides variables, functions, arrays, complex arithmetic, Boolean expressions Compared to other high-level languages – Maps almost directly into hardware instructions, making optimization easier – Provides a minimal set of abstractions compared to other HLLs – Like other HLLs, makes complex programming simpler (at the expense of efficiency)

6 Hello World – code /* Hello World! */ #include int main() { printf(“Hello World!\n”); return 0; }

7 C compilation model

8 Hello World – walkthrough C program: hello.c – emacs, vi, vim, pico, joe … – Plaintext only Preprocessing: hello.s, assembly code – cc -S hello.c Compilation: hello.o, a binary file – cc -c hello.s Linking: a.out or hello, an executable file – cc hello.o – cc -o hello hello.o Loading (dynamical linking) and execution:./hello –./a.out –./hello

9 Hello World – content breakdown Comment Preprocessor directive Function definition Output statement Return clause

10 #include int main() { int first, second, add; float divide; printf("Enter two integers\n"); scanf("%d%d", &first, &second); add = first + second; divide = first / (float)second; printf("Sum = %d\n",add); printf("Division = %.2f\n",divide); return 0; } Second Example

11 Second example – content breakdown Variables Function calls – Input – Output Operators Typecasting


Download ppt "CSE 2541 – Advanced C Programming Instructor: Yang Zhang"

Similar presentations


Ads by Google