0% found this document useful (0 votes)
54 views23 pages

Cpart 1

C is a high-level language from the 1970s that does not support objects like C++ and Java but has similar syntax. It was one of the earliest high-level languages and influenced the design of C++ and Java. C is still widely used today due to its efficiency and the large codebases written in it.

Uploaded by

tahermoh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views23 pages

Cpart 1

C is a high-level language from the 1970s that does not support objects like C++ and Java but has similar syntax. It was one of the earliest high-level languages and influenced the design of C++ and Java. C is still widely used today due to its efficiency and the large codebases written in it.

Uploaded by

tahermoh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

C is a high level language (HLL)

Its syntax is much the same as Java


and C++, but no objects.

Actually, C++ and Java are much the


same as C. C was designed in the
1970s.

1
Java

2
C

3
Why C ?
1. Millions of lines of code have been
written, so you are going to run into
it.
One place you are likely to run into it are
the UW-Madison 500-level CS systems
classes.
2. It gives a common language to
reference, so the remainder of 354
can base examples on C code (not
Java, C++, Ruby, Python, etc.).
3. Any C++ programmer also needs to
know C.
4
Comments in C code

/* my comment */

opening delimiter closing delimiter

comments may span lines

5
/* hello world program */

#include <stdio.h>

main() {
printf("hello, world\n");
}

6
C’s
printf()

is like:

Java’s
System.out.print()

or C++’s
cout

7
Java source code

compiler

Java “byte codes”

Java interpreter (JVM)

8
high level language source code

compiler

assembly language source code

assembler

machine code

linking and loading

execution

9
high level language source code

C preprocessor

C compiler

assembly language source code

10
the C preprocessor does

1. #include

2. macro substitution
for example:
#define MAX 100

3. conditional compilation

11
#include <stdio.h>

#include "myheaders.h"

1.

12
#include <stdio.h>
2.
#define MAX 100
main() {
int x;

x = 1;
while (x <= MAX) {
printf("%d\n", x);
x++;
}
}
13
C's basic types
• char – An ASCII character. Typically 1
byte.
• int – A 2's complement integer.
Typically the size of a word on the
architecture.
• float – An IEEE single precision floating
point value. 32 bits.
• double – An IEEE double precision
floating point value. 64 bits

Not listed here: pointer types.

14
Type qualifiers
If and when you believe you need to use
these, look them up:
• signed
• unsigned – causes integer arithmetic
operations to be ones for unsigned
integers
• long – relates to size
• short – relates to size
• const – do not use this qualifier to
define a constant. What happens when
code tries to change a variable
declared as const is implementation
dependent.
15
C string
An array of characters, which uses the
null character to delimit the end of the
string.
'\0' is the null character. All zeros bit
pattern in ASCII.

"Hi."

"12"

16
I/O Concept and
Implementation
Logical places where input comes from and
output goes to:

stdin
stdout
stderr

17
Output (in the stdio library)

int printf(char *format [, arg1] … );

function string, calledoptional,


name the as referenced
format string by string
return value:
# characters printed

18
printf("howdy");

howdy

A better way to do this (for security reasons) is


puts("howdy");

19
Within the format string,
to reference variable (values):

%d for an integer
%u for unsigned
%c for a character
%s for a string

Each %character references an


argument
20
int x, y;

x = 3;
y = 5;
printf(" %d + %d = %d\n", x, y,
x + y);
newline character

3 + 5= 8

21
#include <stdio.h>

main()
{
int x; OUTPUT
x = 354;
printf("[%d]\n", x); [354]
printf("[%1d]\n", x); [354]
printf("[%2d]\n", x); [354]
printf("[%3d]\n", x); [354]
printf("[%4d]\n", x); [ 354]
printf("[%-4d]\n", x); [354 ]
}

Optional field width

22
#include <stdio.h>

main()
{
float x; OUTPUT
x = 1234.5678;
printf("[%f]\n", x); [1234.567749]
printf("[%1f]\n", x); [1234.567749]
printf("[%2f]\n", x); [1234.567749]
printf("[%20f]\n", x); [ 1234.567749]
printf("[%-20f]\n", x); [1234.567749 ]
printf("[%1.2f]\n", x); [1234.57]
printf("[%-2.3f]\n", x); [1234.568]
printf("[%-20.3f]\n", x); [1234.568 ]
}

23

You might also like