Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
444,3 KB
Nội dung
0 Practical C Programming, 3rd Edition By Steve Oualline 3rd Edition August 1997 ISBN: 1-56592-306-5 This new edition of "Practical C Programming" teaches users not only the mechanics or programming, but also how to create programs that are easy to read, maintain, and debug. It features more extensive examples and an introduction to graphical development environments. Programs conform to ANSI C. TEAM FLY PRESENTS 1 Table of Contents Preface How This Book is Organized Chapter by Chapter Notes on the Third Edition Font Conventions Obtaining Source Code Comments and Questions Acknowledgments Acknowledgments to the Third Edition I. Basics 1. What Is C? How Programming Works Brief History of C How C Works How to Learn C 2. Basics of Program Writing Programs from Conception to Execution Creating a Real Program Creating a Program Using a Command-Line Compiler Creating a Program Using an Integrated Development Environment Getting Help on UNIX Getting Help in an Integrated Development Environment IDE Cookbooks Programming Exercises 3. Style Common Coding Practices Coding Religion Indentation and Code Format Clarity Simplicity Summary 4. Basic Declarations and Expressions Elements of a Program Basic Program Structure Simple Expressions Variables and Storage TEAM FLY PRESENTS 2 Variable Declarations Integers Assignment Statements printf Function Floating Point Floating Point Versus Integer Divide Characters Answers Programming Exercises 5. Arrays, Qualifiers, and Reading Numbers Arrays Strings Reading Strings Multidimensional Arrays Reading Numbers Initializing Variables Types of Integers Types of Floats Constant Declarations Hexadecimal and Octal Constants Operators for Performing Shortcuts Side Effects ++x or x++ More Side-Effect Problems Answers Programming Exercises 6. Decision and Control Statements if Statement else Statement How Not to Use strcmp Looping Statements while Statement break Statement continue Statement Assignment Anywhere Side Effect Answer Programming Exercises 7. Programming Process Setting Up Specification TEAM FLY PRESENTS 3 Code Design Prototype Makefile Testing Debugging Maintenance Revisions Electronic Archaeology Marking Up the Program Using the Debugger Text Editor as a Browser Add Comments Programming Exercises II. Simple Programming 8. More Control Statements for Statement switch Statement switch, break, and continue Answers Programming Exercises 9. Variable Scope and Functions Scope and Class Functions Functions with No Parameters Structured Programming Recursion Answers Programming Exercises 10. C Preprocessor #define Statement Conditional Compilation include Files Parameterized Macros Advanced Features Summary Answers Programming Exercises 11. Bit Operations Bit Operators The and Operator (&) TEAM FLY PRESENTS 4 Bitwise or (|) The Bitwise Exclusive or (^) The Ones Complement Operator (Not) (~) The Left- and Right-Shift Operators (<<, >>) Setting, Clearing, and Testing Bits Bitmapped Graphics Answers Programming Exercises 12. Advanced Types Structures Unions typedef enum Type Casting Bit Fields or Packed Structures Arrays of Structures Summary Programming Exercises 13. Simple Pointers Pointers as Function Arguments const Pointers Pointers and Arrays How Not to Use Pointers Using Pointers to Split a String Pointers and Structures Command-Line Arguments Programming Exercises Answers 14. File Input/Output Conversion Routines Binary and ASCII Files The End-of-Line Puzzle Binary I/O Buffering Problems Unbuffered I/O Designing File Formats Answers Programming Exercises 15. Debugging and Optimization Debugging Interactive Debuggers TEAM FLY PRESENTS 5 Debugging a Binary Search Runtime Errors The Confessional Method of Debugging Optimization Answers Programming Exercises 16. Floating Point Floating-Point Format Floating Addition/Subtraction Multiplication Division Overflow and Underflow Roundoff Error Accuracy Minimizing Roundoff Error Determining Accuracy Precision and Speed Power Series Programming Exercises III. Advanced Programming Concepts 17. Advanced Pointers Pointers and Structures free Function Linked List Structure Pointer Operator Ordered Linked Lists Double-Linked Lists Trees Printing a Tree Rest of Program Data Structures for a Chess Program Answers Programming Exercises 18. Modular Programming Modules Public and Private The extern Modifier Headers The Body of the Module A Program to Use Infinite Arrays TEAM FLY PRESENTS 6 The Makefile for Multiple Files Using the Infinite Array Dividing a Task into Modules Module Division Example: Text Editor Compiler Spreadsheet Module Design Guidelines Programming Exercises 19. Ancient Compilers K&R-Style Functions Library Changes Missing Features Free/Malloc Changes lint Answers 20. Portability Problems Modularity Word Size Byte Order Problem Alignment Problem NULL Pointer Problem Filename Problems File Types Summary Answers 21. C's Dustier Corners do/while goto The ?: Construct The , Operator volatile Qualifier Answer 22. Putting It All Together Requirements Specification Code Design Coding Functional Description TEAM FLY PRESENTS 7 Expandability Testing Revisions A Final Warning Program Files Programming Exercises 23. Programming Adages General Design Declarations switch Statement Preprocessor Style Compiling Final Note Answer IV. Other Language Features A. ASCII Table B. Ranges and Parameter Passing Conversions C. Operator Precedence Rules D. A Program to Compute a Sine Using a Power Series Glossary Index TEAM FLY PRESENTS 8 Preface This book is devoted to practicalC programming. C is currently the premier language for software developers. That's because it's widely distributed and standard. Newer languages are available, such as C++, but these are still evolving. C is still the language of choice for robust, portable programming. This book emphasizes the skills you will need to do real-world programming. It teaches you not only the mechanics of the C language, but the entire life cycle of a C program as well (including the program's conception, design, code, methods, debugging, release, documentation, maintenance, and revision). Good style is emphasized. To create a good program yo u must do more than just type in code. It is an art in which writing and programming skills blend themselves together to form a masterpiece. True art can be created. A well-written program not only functions correctly, but is simple and easy to understand. Comments allow the programmer to include descriptive text inside the program. When clearly written, a commented program is highly prized. A program should be as simple as possible. A programmer should avoid clever tricks. This book stresses simple, practical rules. For example, there are 15 operator precedence rules in C. These can be simplified into two rules: 1. Multiply and divide come before add and subtract. 2. Put parentheses around everything else. Consider two programs. One was written by a clever programmer using all the tricks. The program contains no comments, but it works. The other program is well commented and nicely structured, but it doesn't work. Which program is more useful? In the long run, the broken one. It can be fixed. Although the clever program works now, sooner or later all programs have to be modified. The worst thing that you will ever have to do is to modify a cleverly written program. This handbook is written for people with no previous programming experience or programmers who already know C and want to improve their style and reliability. You should have access to a computer and TEAM FLY PRESENTS 9 know how to use the basic functions such as a text editor and the filesystem. Specific instructions are given for producing and running programs using the UNIX operating system with a generic cc compiler or the Free Software Foundation's gcc compiler. For MS-DOS/Windows users, instructions are included for Borland C++, Turbo C++, and Microsoft Visual C++. (These compilers compile both C and C++ code.) The book also gives examples of using the programming utility make for automated program production. How This Book is Organized You must crawl before you walk. In Part I we teach you how to crawl. These chapters enable you to write very simple programs. We start with the mechanics of programming and programming style. Next, you learn how to use variables and very simple decision and control statements. In Chapter 7, we take you on a complete tour of the software life cycle to show you how real programs are created. Part II describes all of the other simple statements and operators that are used in programming. You'll also learn how to organize these statements into simple functions. In Part III we take our basic declarations and statements and learn how they can be used in the construction of advanced types such as structures, unions, and classes. We'll also introduce the concept of pointers. Finally, a number of miscellaneous features are described Part IV . Chapter by Chapter Chapter 1 gives a brief description of the C language and its use. This chapter includes some background on the history of the language. Chapter 2 explains the basic programming process and gives you enough information to write a very simple program. Chapter 3 discusses programming style. Commenting a program is covered, as well as writing clear and simple code. TEAM FLY PRESENTS [...]... will find a section called "Programming Exercises." These sections contain 11 TEAM FLY PRESENTS exercises that might be used in a programming class to test your knowledge of C programming Notes on the Third Edition The C language has evolved since the first edition of Practical CProgramming was published Back then, ANSI compilers were rare and compilers that accepted the K& R syntax were common Now the... the necessary steps to create a simple program from specification through release Structured programming, fast prototyping, and debugging are also discussed Chapter 8 describes additional control statements Included are while, break, and continue The switch statement is discussed in detail Chapter 9 introduces local variables, functions, and parameters Chapter 10 describes the C preprocessor, which gives... host here 230 Guest login ok, access restrictions apply ftp> cd /published/oreilly/nutshell /practical_ c3 250 CWD command successful ftp> binary 200 Type set to I ftp> get examples.tar.gz 200 PORT command successful 150 Opening BINARY mode data connection for examples.tar.gz (xxxx bytes) 226 Transfer complete local: exercises remote: exercises xxxx bytes received in xxx seconds (xxx Kbytes/s) ftp> quit... consider C+ + the better language because it does things automatically and C doesn't Other people consider C better for precisely the same reason Also, C+ + is a relatively new language that's still changing Much more C code exists than C+ + code, and that C code will need to be maintained and upgraded So C will be with us for a long time to come 20 TEAM FLY PRESENTS 1.1 How Programming Works Communicating... ones Chapter 1 gives a brief description of the C language and its use This chapter includes some background on the history of the language Chapter 2 explains the basic programming process and gives you enough information to write a very simple program Chapter 3 discusses programming style Commenting a program is covered, as well as writing clear and simple code Chapter 4 introduces you to simple C statements... Which is better, C or C+ +? The answer depends on who you talk to C+ + does great things for you behind your back, such as automatically calling constructors and destructors for variables This processing makes some types of programming easy, but it makes static checking of programs difficult, and you need to be able to tell exactly what your program is doing if you are working on embedded control applications... reflects the industry shift to ANSI compilers All programs and examples have been updated to conform to the ANSI standard In fact, the older K&R syntax is discussed only in Chapter 19 Other changes/additions to the book include: • Additional instructions for more compilers including a generic UNIX compiler, the Free Software Foundations gcc compilers, Borland C+ +, Turbo C+ +, and Microsoft Visual C+ +... they can't do anything until someone tells them what to do That's where C comes in C is a programming language that allows a software engineer to efficiently communicate with a computer C is a highly flexible and adaptable language Since its creation in 1970, it's been used for a wide variety of programs including firmware for micro -controllers, operating systems, applications, and graphics programming. .. space The notation CTRL-X or ^X indicates use of control characters The notation instructs you to hold down the " control" key while typing the character "x" We denote other keys similarly (e.g., RETURN indicates a carriage return) All examples of command lines are followed by a RETURN unless otherwise indicated 13 TEAM FLY PRESENTS Obtaining Source Code The exercises in this book areavailable electronically... ftp://ftp.oreilly.com/published/oreilly/nutshell /practical_ c3 /examples.tar.gz If you don't have a web browser, you can use the command-line FTP client included with Windows NT (or Windows 95) If you are on a PC, you can get examples.zip instead o f examples.tar.gz % ftp ftp.oreilly.com Connected to ftp.oreilly.com 220 ftp.oreilly.com FTP server (Version 6.34 Thu Oct 22 14:32:01 EDT 1992) ready Name (ftp.oreilly.com:username . IDE Cookbooks Programming Exercises 3. Style Common Coding Practices Coding Religion Indentation and Code Format Clarity Simplicity Summary 4. Basic Declarations. host here 230 Guest login ok, access restrictions apply. ftp> cd /published/oreilly/nutshell /practical_ c3 250 CWD command successful. ftp> binary 200