産品特色
內容簡介
《C11編程導論英文版》沿用瞭Deitel特色的“程序實況解說”,深入探討瞭C語言和C標準庫。通過完整的語法著色、代碼高亮、代碼演練和程序輸齣,全麵地介紹瞭測試程序的概念。《C11編程導論英文版》匯集約5000行C代碼和數百個開發技巧,將幫助你構建強大的應用程序。《C11編程導論英文版》的內容包括構建自定義數據結構、標準庫等;並選擇瞭C11標準的一些新特性,如多綫程來幫助你為目前的多核係統編寫高性能的應用程序;C語言安全編程部分展示瞭如何讓你編寫的程序具有更好的魯棒性,不易受到攻擊。
《C11編程導論英文版》適閤具有一定高級語言編程背景的程序員閱讀。
作者簡介
Paul Deitel,Deitel & Associates有限公司的CEO兼CTO,畢業於麻省理工學院,主修信息技術。在Deitel & Associate有限公司公司工作的過程中,他已經為行業、政府機關和軍隊客戶提供瞭數百節編程課程,這些客戶包括思科、IBM、西門子、Sun Microsystems、戴爾、Fidelity、肯尼迪航天中心、美國國傢強風暴實驗室、白沙導彈試驗場、Rogue Wave Software、波音公司、SunGard Higher Education、北電網絡公司、彪馬、iRobot、Invensys等。他和本書的閤著者Harvey M. Deitel博士是全球暢銷編程語言教材、專業書籍和視頻的作者。
Harvey Deitel博士,Deitel & Associates有限公司的董事長和首席戰略官,在計算機領域中擁有50多年的經驗。Deitel博士獲得瞭麻省理工學院電子工程(學習計算)的學士和碩士學位,並獲得瞭波士頓大學的數學博士學位(學習計算機科學)。他擁有豐富的行業和大學教學經驗,在1991年與兒子Paul Deitel創辦Deitel & Associates有限公司之前,他是波士頓大學計算機科學係的主任並獲得瞭終身任職權。Deitel博士為很多大公司、學術研究機構、政府機關和軍方提供瞭數百場專業編程講座。Deitel的齣版物獲得瞭國際上的認可,並被翻譯為繁體中文、簡體中文、韓語、日語、德語、俄語、西班牙語、法語、波蘭語、意大利語、葡萄牙語、希臘語、烏爾都語和土耳其語。
目錄
前言
1 Introduction
1.1 Introduction
1.2 The C Programming Language
1.3 C Standard Library
1.4 C++ and Other C-Based Languages
1.5 Typical C Program Development Environment
1.5.1 Phase 1: Creating a Program
1.5.2 Phases 2 and 3: Preprocessing and Compiling a C Program
1.5.3 Phase 4: Linking
1.5.4 Phase 5: Loading
1.5.5 Phase 6: Execution
1.5.6 Standard Input, Standard Output and Standard Error Streams
1.6 Test-Driving a C Application in Windows, Linux and Mac OS X
1.6.1 Running a C Application from the Windows Command Prompt
1.6.2 Running a C Application Using GNU C with Linux
1.6.3 Running a C Application Using GNU C with Mac OS X
1.7 Operating Systems
1.7.1 Windows―A Proprietary Operating System
1.7.2 Linux―An Open-Source Operating System
1.7.3 Apple’s Mac OS X; Apple’s iOS ? for iPhone ? , iPad ? and iPod Touch ? Devices
1.7.4 Google’s Android
2 Introduction to C Programming
2.1 Introduction
2.2 A Simple C Program: Printing a Line of Text
2.3 Another Simple C Program: Adding Two Integers
2.4 Arithmetic in C
2.5 Decision Making: Equality and Relational Operators
2.6 Secure C Programming
3 Control Statements: Part I
3.1 Introduction
3.2 Control Structures
3.3 The if Selection Statement
3.4 The if … else Selection Statement
3.5 The while Repetition Statement
3.6 Class Average with Counter-Controlled Repetition
3.7 Class Average with Sentinel-Controlled Repetition
3.8 Nested Control Statements
3.9 Assignment Operators
3.10 Increment and Decrement Operators
3.11 Secure C Programming
4 Control Statements: Part II
4.1 Introduction
4.2 Repetition Essentials
4.3 Counter-Controlled Repetition
4.4 for Repetition Statement
4.5 for Statement: Notes and Observations
4.6 Examples Using the for Statement
4.7 switch Multiple-Selection Statement
4.8 do … while Repetition Statement
4.9 break and continue Statements
4.10 Logical Operators
4.11 Confusing Equality ( == ) and Assignment ( = ) Operators
4.12 Secure C Programming
5 Functions
5.1 Introduction
5.2 Program Modules in C
5.3 Math Library Functions
5.4 Functions
5.5 Function Definitions
5.6 Function Prototypes: A Deeper Look
5.7 Function Call Stack and Stack Frames
5.8 Headers
5.9 Passing Arguments By Value and By Reference
5.10 Random Number Generation
5.11 Example: A Game of Chance
5.12 Storage Classes
5.13 Scope Rules
5.14 Recursion
5.15 Example Using Recursion: Fibonacci Series
5.16 Recursion vs. Iteration
5.17 Secure C Programming
6 Arrays
6.1 Introduction
6.2 Arrays
6.3 Defining Arrays
6.4 Array Examples
6.5 Passing Arrays to Functions
6.6 Sorting Arrays
6.7 Case Study: Computing Mean, Median and Mode Using Arrays
6.8 Searching Arrays
6.9 Multidimensional Arrays
6.10 Variable-Length Arrays
6.11 Secure C Programming
7 Pointers
7.1 Introduction
7.2 Pointer Variable Definitions and Initialization
7.3 Pointer Operators
7.4 Passing Arguments to Functions by Reference
7.5 Using the const Qualifier with Pointers
7.5.1 Converting a String to Uppercase Using a Non-Constant Pointer to Non-Constant Data
7.5.2 Printing a String One Character at a Time Using a Non-Constant Pointer to Constant Data
7.5.3 Attempting to Modify a Constant Pointer to Non-Constant Data
7.5.4 Attempting to Modify a Constant Pointer to Constant Data
7.6 Bubble Sort Using Pass-by-Reference
7.7 sizeof Operator
7.8 Pointer Expressions and Pointer Arithmetic
7.9 Relationship between Pointers and Arrays
7.10 Arrays of Pointers
7.11 Case Study: Card Shuffling and Dealing Simulation
7.12 Pointers to Functions
7.13 Secure C Programming
8 Characters and Strings
8.1 Introduction
8.2 Fundamentals of Strings and Characters
8.3 Character-Handling Library
8.3.1 Functions isdigit , isalpha , isalnum and isxdigit
8.3.2 Functions islower , isupper , tolower and toupper
8.3.3 Functions isspace , iscntrl , ispunct , isprint and isgraph
8.4 String-Conversion Functions
8.4.1 Function strtod
8.4.2 Function strtol
8.4.3 Function strtoul
8.5 Standard Input/Output Library Functions
8.5.1 Functions fgets and putchar
8.5.2 Function getchar
8.5.3 Function sprintf
8.5.4 Function sscanf
8.6 String-Manipulation Functions of the String-Handling Library
8.6.1 Functions strcpy and strncpy
8.6.2 Functions strcat and strncat
8.7 Comparison Functions of the String-Handling Library
8.8 Search Functions of the String-Handling Library
8.8.1 Function strchr
8.8.2 Function strcspn
8.8.3 Function strpbrk
8.8.4 Function strrchr
8.8.5 Function strspn
8.8.6 Function strstr
8.8.7 Function strtok
8.9 Memory Functions of the String-Handling Library
8.9.1 Function memcpy
8.9.2 Function memmove
8.9.3 Function memcmp
8.9.4 Function memchr
8.9.5 Function memset
8.10 Other Functions of the String-Handling Library
8.10.1 Function strerror
8.10.2 Function strlen
8.11 Secure C Programming
9 Formatted Input/Output
9.1 Introduction
9.2 Streams
9.3 Formatting Output with printf
9.4 Printing Integers
9.5 Printing Floating-Point Numbers
9.6 Printing Strings and Characters
9.7 Other Conversion Specifiers
9.8 Printing with Field Widths and Precision
9.9 Using Flags in the printf Format Control String
9.10 Printing Literals and Escape Sequences
9.11 Reading Formatted Input with scanf
9.12 Secure C Programming
10 Structures, Unions, Bit Manipulation and Enumerations
10.1 Introduction
10.2 Structure Definitions
10.2.1 Self-Referential Structures
10.2.2 Defining Variables of Structure Types
10.2.3 Structure Tag Names
10.2.4 Operations That Can Be Performed on Structures
10.3 Initializing Structures
10.4 Accessing Structure Members
10.5 Using Structures with Functions
10.6 typedef
10.7 Example: High-Performance Card Shuffling and Dealing Simulation
10.8 Unions
10.8.1 Union Declarations
10.8.2 Operations That Can Be Performed on Unions
10.8.3 Initializing Unions in Declarations
10.8.4 Demonstrating Unions
10.9 Bitwise Operators
10.9.1 Displaying an Unsigned Integer in Bits
10.9.2 Making Function displayBits More Scalable and Portable
10.9.3 Using the Bitwise AND, Inclusive OR, Exclusive OR and Complement Operators
10.9.4 Using the Bitwise Left- and Right-Shift Operators
10.9.5 Bitwise Assignment Operators
10.10 Bit Fields
10.11 Enumeration Constants
10.12 Secure C Programming
11 File Processing
11.1 Introduction
11.2 Files and Streams
11.3 Creating a Sequential-Access File
11.4 Reading Data from a Sequential-Access File
11.5 Random-Access Files
11.6 Creating a Random-Access File
11.7 Writing Data Randomly to a Random-Access File
11.8 Reading Data from a Random-Access File
11.9 Case Study: Transaction-Processing Program
11.10 Secure C Programming
12 Data Structures
12.1 Introduction
12.2 Self-Referential Structures
12.3 Dynamic Memory Allocation
12.4 Linked Lists
12.4.1 Function insert
12.4.2 Function delete
12.4.3 Function printList
12.5 Stacks
12.5.1 Function push
12.5.2 Function pop
12.5.3 Applications of Stacks
12.6 Queues
12.6.1 Function enqueue
12.6.2 Function dequeue
12.7 Trees
12.7.1 Function insertNode
12.7.2 Traversals: Functions inOrder , preOrder and postOrder
12.7.3 Duplicate Elimination
12.7.4 Binary Tree Search
12.8 Secure C Programming
13 Preprocessor
13.1 Introduction
13.2 #include Preprocessor Directive
13.3 #define Preprocessor Directive: Symbolic Constants
13.4 #define Preprocessor Directive: Macros
13.5 Conditional Compilation
13.6 #error and #pragma Preprocessor Directives
13.7 # and ## Operators
13.8 Line Numbers
13.9 Predefined Symbolic Constants
13.10 Assertions
13.11 Secure C Programming
14 Other Topics
14.1 Introduction
14.2 Redirecting I/O
14.3 Variable-Length Argument Lists
14.4 Using Command-Line Arguments
14.5 Notes on Compiling Multiple-Source-File Programs
14.6 Program Termination with exit and atexit
14.7 Suffixes for Integer and Floating-Point Literals
14.8 Signal Handling
14.9 Dynamic Memory Allocation: Functions calloc and realloc
14.10 Unconditional Branching with goto
A Operator Precedence Chart
B ASCII Character Set
C Number Systems
C.1 Introduction
C.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
C.3 Converting Octal and Hexadecimal Numbers to Binary Numbers
C.4 Converting from Binary, Octal or Hexadecimal to Decimal
C.5 Converting from Decimal to Binary, Octal or Hexadecimal
C.6 Negative Binary Numbers: Two’s Complement Notation
D Sorting: A Deeper Look
D.1 Introduction
D.2 Big O Notation
D.3 Selection Sort
D.4 Insertion Sort
D.5 Merge Sort
E Additional Features of the C Standard
E.1 Introduction
E.2 Support for C99
E.3 C99 Headers
E.4 Mixing Declarations and Executable Code
E.5 Declaring a Variable in a for Statement Header
E.6 Designated Initializers and Compound Literals
E.7 Type bool
E.8 Implicit int in Function Declarations
E.9 Complex Numbers
E.10 Variable-Length Arrays
E.11 Additions to the Preprocessor
E.12 Other C99 Features
E.12.1 Compiler Minimum Resource Limits
E.12.2 The restrict Keyword
E.12.3 Reliable Integer Division
E.12.4 Flexible Array Members
E.12.5 Relaxed Constraints on Aggregate Initialization
E.12.6 Type Generic Math
E.12.7 Inline Functions
E.12.8 return Without Expression
E.12.9 __func__ Predefined Identifier
E.12.10 va_copy Macro
E.13 New Features in the C11 Standard
E.13.1 New C11 Headers
E.13.2 Multithreading Support
E.13.3 quick_exit function
E.13.4 Unicode ? Support
E.13.5 _Noreturn Function Specifier
E.13.6 Type-Generic Expressions
E.13.7 Annex L: Analyzability and Undefined Behavior
E.13.8 Anonymous Structures and Unions
E.13.9 Memory Alignment Control
E.13.10 Static Assertions
E.13.11 Floating Point Types
E.14 Web Resources
F Using the Visual Studio Debugger
F.1 Introduction
F.2 Breakpoints and the Continue Command
F.3 Locals and Watch Windows
F.4 Controlling Execution Using the Step Into , Step Over , Step Out and Continue Commands
F.5 Autos Window
G Using the GNU Debugger
G.1 Introduction
G.2 Breakpoints and the run , stop , continue and print Commands
G.3 print and set Commands
G.4 Controlling Execution Using the step , finish and next Commands
G.5 watch Command
Index
前言/序言