Download presentation
Presentation is loading. Please wait.
Published byAdele Short Modified over 9 years ago
1
CSE 2541 – Advanced C Programming
2
Course info Prereq – CSE 2221 or CSE 222 Co-req – CSE 2231 Website http://www.cse.ohio-state.edu/~shir/cse-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
C characteristics "C" because many features came from earlier language “B“ – Reduced form of Basic Combined Programming Language, 1966 Block structured – Blocks are denoted { } Many utility functions provided in libraries – Libc, libpthread, libm – Nowhere near the functionality of other runtime environments Some major C features – Functions, Structures, Types – Pointers – direct access to memory space
7
C vs. Java Speed Portability Object orientation
8
C vs. Java Pointers to memory Platform dependent types Programmer allocated memory Declare variables at start of block References to objects Types have well defined sizes Automatic garbage collection Declare variable anywhere
9
Hello World – code /* Hello World! */ #include int main() { printf(“Hello World!\n”); return 0; }
10
C compilation model
11
Hello World – walkthrough C program: hello.c – emacs, vi, vim, pico, joe … – Plaintext only Preprocessing and Compiling: hello.s, assembly code – cc -S hello.c Assembler: 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
12
Hello World – content breakdown Comment Preprocessor directive Function definition Output statement Return clause
13
#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
14
Second example – content breakdown Variables Function calls – Input – Output Operators Typecasting
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.