Fluent C - Helion
ISBN: 9781492097297
stron: 306, Format: ebook
Data wydania: 2022-10-17
Księgarnia: Helion
Cena książki: 194,65 zł (poprzednio: 226,34 zł)
Oszczędzasz: 14% (-31,69 zł)
Expert advice on C programming is hard to find. While much help is available for object-oriented programming languages, there's surprisingly little for the C language. With this hands-on guide, beginners and experienced C programmers alike will find guidance about design decisions, including how to apply them bit by bit to running code examples when building large-scale programs.
Christopher Preschern, a leading member of the design patterns community, answers questions such as how to structure C programs, cope with error handling, or design flexible interfaces. Whether you're looking for one particular pattern or an overview of design options for a specific topic, this book shows you how to implement hands-on design knowledge specifically for the C programming language.
You'll find design patterns for:
- Error handling
- Returning error information
- Memory management
- Returning data from C functions
- Data lifetime and ownership
- Flexible APIs
- Flexible iterator interfaces
- Organizing files in modular programs
- Escaping #ifdef Hell
Osoby które kupowały "Fluent C", wybierały także:
- Windows Media Center. Domowe centrum rozrywki 66,67 zł, (8,00 zł -88%)
- Ruby on Rails. Ćwiczenia 18,75 zł, (3,00 zł -84%)
- Przywództwo w świecie VUCA. Jak być skutecznym liderem w niepewnym środowisku 58,64 zł, (12,90 zł -78%)
- Scrum. O zwinnym zarządzaniu projektami. Wydanie II rozszerzone 58,64 zł, (12,90 zł -78%)
- Od hierarchii do turkusu, czyli jak zarządzać w XXI wieku 58,64 zł, (12,90 zł -78%)
Spis treści
Fluent C eBook -- spis treści
- Preface
- Why I Wrote This Book
- Patterns Basics
- How to Read This Book
- Overview of the Patterns
- Conventions Used in This Book
- Using Code Examples
- OReilly Online Learning
- How to Contact Us
- Acknowledgments
- I. C Patterns
- 1. Error Handling
- Running Example
- Function Split
- Guard Clause
- Samurai Principle
- Goto Error Handling
- Cleanup Record
- Object-Based Error Handling
- Summary
- Further Reading
- Outlook
- 2. Returning Error Information
- Running Example
- Return Status Codes
- Return Relevant Errors
- Special Return Values
- Log Errors
- Summary
- Further Reading
- Outlook
- 3. Memory Management
- Data Storage and Problems with Dynamic Memory
- Running Example
- Stack First
- Eternal Memory
- Lazy Cleanup
- Dedicated Ownership
- Allocation Wrapper
- Pointer Check
- Memory Pool
- Summary
- Further Reading
- Outlook
- 4. Returning Data from C Functions
- Running Example
- Return Value
- Out-Parameters
- Aggregate Instance
- Immutable Instance
- Caller-Owned Buffer
- Callee Allocates
- Summary
- Outlook
- 5. Data Lifetime and Ownership
- Stateless Software-Module
- Software-Module with Global State
- Caller-Owned Instance
- Shared Instance
- Summary
- Further Reading
- Outlook
- 6. Flexible APIs
- Header Files
- Handle
- Dynamic Interface
- Function Control
- Summary
- Further Reading
- Outlook
- 7. Flexible Iterator Interfaces
- Running Example
- Index Access
- Cursor Iterator
- Callback Iterator
- Summary
- Further Reading
- Outlook
- 8. Organizing Files in Modular Programs
- Running Example
- Include Guard
- Software-Module Directories
- Global Include Directory
- Self-Contained Component
- API Copy
- Summary
- Outlook
- 9. Escaping #ifdef Hell
- Running Example
- Avoid Variants
- Isolated Primitives
- Atomic Primitives
- Abstraction Layer
- Split Variant Implementations
- Summary
- Further Reading
- Outlook
- II. Pattern Stories
- 10. Implementing Logging Functionality
- The Pattern Story
- File Organization
- Central Logging Function
- Logging Source Filter
- Conditional Logging
- Multiple Logging Destinations
- File Logging
- Cross-Platform Files
- Using the Logger
- Summary
- The Pattern Story
- 11. Building a User Management System
- The Pattern Story
- Data Organization
- File Organization
- Authentication: Error Handling
- Authentication: Error Logging
- Adding Users: Error Handling
- Iterating
- Using the User Management System
- Summary
- The Pattern Story
- 12. Conclusion
- What Youve Learned
- Further Reading
- Closing Remarks
- Index