Microsoft Visual C++ ; Vol 4 : Language Reference

by Staff at Microsoft

Paper Book, 1998

Status

Available

Library's review

Denne klump af en bog indeholder tre separate bøger, "C Language Reference", "C++ Language Reference", "Preprocessor Reference".

"C Language Reference":
Indeholder "Introduction", " Organization of the C Language Reference", " Scope of this Manual", " ANSI Conformance", "Chapter 1. Elements of C", " Tokens", " White-Space Characters", " Comments", " Evaluation of Tokens", " Keywords", " Identifiers", " Multibyte and Wide Characters", " Trigraphs", " Constants", " Floating-Point Constants", " Integer Constants", " Character Constants", " String Literals", " Type for String Literals", " Storage of String Literals", " String Literal Concatenation", " Maximum String Length", " Punctuation and Special Characters", "Chapter 2. Program Structure", " Source Files and Source Programs", " The main Function and Program Execution", " Using wmain", " Argument Description", " Expanding Wildcard Arguments", " Parsing Command-Line Arguments", " Customizing Command-Line Processing", " Lifetime, Scope, Visibility, and Linkage", " Lifetime", " Scope and Visibility", " Summary of Lifetime and Visibility", " Linkage", " Name Spaces", "Chapter 3. Declarations and Types", " Overview of Declarations", " Storage Classes", " Storage-Class Specifiers for External-Level Declarations", " Storage-Class Specifiers for Internal-Level Declarations", " Storage-Class Specifiers with Function Declarations", " Type Specifiers", " Data Type Specifiers and Equivalents", " Type Qualifiers", " Declarators and Variable Declarations", " Simple Variable Declarations", " Enumeration Declarations", " Structure Declarations", " Union Declarations", " Array Declarations", " Pointer Declarations", " Based Pointers", " Abstract Declarators", " Interpreting More Complex Declarators", " Initialization", " Initializing Scalar Types", " Initializing Aggregate Types", " Initializing Strings", " Storage of Basic Types", " Incomplete Types", " Typedef Declarations", " Extended Storage-Class Attributes", " DLL Import and Export", " Naked", " Thread Local Storage", "Chapter 4. Expressions and Assignments", " Operands and Expressions", " Primary Expressions", " L-Value and R-Value Expressions", " Constant Expressions", " Expression Evaluation", " Operators", " Precedence and Order of Evaluation", " Usual Arithmetic Conversions", " Postfix Operators", " Unary Operators", " Cast Operators", " Multiplicative Operators", " Additive Operators", " Bitwise Shift Operators", " Relational and Equality Operators", " Bitwise Operators", " Logical Operators", " Conditional-Expression Operator", " Assignment Operators", " Sequential-Evaluation Operator", " Type Conversions", " Assignment Conversions", " Type-Cast Conversions", " Function-Call Conversions", "Chapter 5. Statements", " Overview of Statements", " The break Statement", " The Compound Statement", " The continue Statement", " The do-while Statement", " The Expression Statement", " The for Statement", " The goto and Labeled Statements", " The if Statement", " The Null Statement", " The return Statement", " The switch Statement", " The try-except Statement", " The try-finally Statement", " The while Statement", "Chapter 6. Functions", " Overview of Functions", " Obsolete Forms of Function Declarations and Definitions", " Function Definitions", " Function Attributes", " DLL Import and Export Functions", " Naked Functions", " Storage Class", " Return Type", " Parameters", " Function Body", " Function Prototypes", " Function Calls", " Arguments", " Calls with a Variable Number of Arguments", " Recursive Functions", "Appendixes", " Appendix A. C Language Syntax Summary", " Definitions and Conventions", " Lexical Grammar", " Tokens", " Keywords", " Identifiers", " Constants", " String Literals", " Operators", " Punctuators", " Phrase Structure Grammar", " Expressions", " Declarations", " Statements", " External Definitions", " Appendix B. Implementation-Defined Behavior", " Translation: Diagnostics", " Environment", " Arguments to main", " Interactive Devices", " Identifiers", " Significant Characters Without External Linkage", " Significant Characters with External Linkage", " Uppercase and Lowercase", " Characters", " The ASCII Character Set", " Multibyte Characters", " Bits per Character", " Character Sets", " Unrepresented Character Constants", " Wide Characters", " Converting Multibyte Characters", " Range of char Values", " Integers", " Range of Integer Values", " Demotion of Integers", " Signed Bitwise Operations", " Remainders", " Right Shifts", " Floating-Point Math", " Values", " Casting Integers to Floating-Point Values", " Truncation of Floating-Point Values", " Arrays and Pointers", " Largest Array Size", " Pointer Subtraction", " Registers: Availability of Registers", " Structures, Unions, Enumerations, and Bit Fields", " Improper Access to a Union", " Padding and Alignment of Structure Members", " Sign of Bit Fields", " Storage of Bit Fields", " The enum type", " Qualifiers: Access to Volatile Objects", " Declarators: Maximum number", " Statements: Limits on Switch Statements", " Preprocessing Directives", " Character Constants and Conditional Inclusion", " Including Bracketed Filenames", " Including Quoted Filenames", " Character Sequences", " Pragmas", " Default Date and Time", " Library Functions", " NULL Macro", " Diagnostic Printed by the assert Function", " Character Testing", " Domain Errors", " Underflow of Floating-Point Values", " The fmod Function", " The signal Function", " Default Signals", " Terminating Newline Characters", " Blank Lines", " Null Characters", " File Position in Append Mode", " Truncation of Text Files", " File Buffering", " Zero-Length Files", " Filenames", " File Access Limits", " Deleting Open Files", " Renaming with a Name That Exists", " Reading Pointer Values", " Reading Ranges", " File Position Errors", " Messages Generated by the perror Function", " Allocating Zero Memory", " The abort Function", " The atexit Function", " Environment Names", " The system Function", " The strerror Function", " The Time Zone", " The clock Function", "Index", "Tables", " Table 1.1 Trigraph Sequences", " Table 1.2", " Table 1.3", " Table 1.4 Escape Sequences", " Table 2.1 Summary of Lifetime and Visibility", " Table 3.1 Type Specifiers and Equivalents", " Table 3.2 Sizes of Fundamental Types", " Table 3.3 Floating-Point Types", " Table 3.4 Lengths of Exponents and Mantisses", " Table 3.5 Range of Floating-Point Types", " Table 4.1 Precedence and Associativity of C Operators", " Table 4.2 Conversions from Signed Integral Types", " Table 4.3 Conversions from Unsigned Integral Types", " Table 4.4 Conversions from Floating-Point Types", " Table 4.5 Legal Type Casts", " Table B.1 Escape Sequences".

C++ Language Reference:
Indeholder "Introduction", " Scope of this Manual", " Organization", " Special Terminology in this Manual", "Chapter 1. Lexical Conventions", " Overview of File Translation", " Tokens", " Comments", " Identifiers", " Keywords", " Punctuators", " Operators", " Literals", " Integer Constants", " Character Constants", " Floating Constants", " String Literals", "Chapter 2. Basic Concepts", " Terms", " Declarations and definitions", " Declarations", " definitions", " Scope", " Point of Declaration", " Hiding Names", " Scope of Formal Arguments to Functions", " Program and Linkage", " Types of Linkage", " Linkage in Names with File Scope", " Linkage in Names with Class Scope", " Linkage in Names with Block Scope", " Names with No Linkage", " Linkage to Non-C++ Functions", " Startup and Termination", " Program Startup: the main Function", " Customizing Command-Line Processing", " Program Termination", " Additional Startup Considerations", " Additional Termination Considerations", " Storage classes", " Automatic", " Static", " Register", " External", " Initialization of Objects", " Types", " Fundamental Types", " Sized Integer Types", " Derived Types", " Type Names", " L-Values and R-Values", " Numerical Limits", " Integer Limits", " Floating Limits", "Chapter 3. Standard Conversions", " Integral Promotions", " Integral Conversions", " Converting Signed to Unsigned", " Converting Unsigned to Signed", " Standard Conversion", " Floating Conversions", " Floating and Integral Conversions", " Floating to Integral", " Integral to Floating", " Arithmetic Conversions", " Pointer Conversions", " Null Pointers", " Pointers to Type void", " Pointers to Objects", " Pointers to Functions", " Pointers to Classes", " Pointer Expressions", " Pointers Modified by const or volatile", " Reference Conversions", " Pointer-to-Member Conversions", " Integral Constant Expressions", " Pointers to Base-Class Members", "Chapter 4. Expressions", " Types of Expressions", " Primary Expressions", " Postfix Expressions", " with Unary Operators", " Expressions with Binary Operators", " Expressions with the Conditional Operator", " Constant Expressions", " Expressions with Explicit Type Conversions", " Expressions with Pointer-to-Member Operators", " Semantics of Expressions", " Order of Evaluation", " Notation in Expressions", " Casting", " Casting Operators", " Run-Time Type Information", "Chapter 5. Statements", " Overview of Statements", " Labeled Statements", " Using Labels with the goto Statement", " Using Labels in the case Statement", " Expression Statement", " The Null Statement", " Compound Statements (Blocks)", " Selection Statements", " The if Statement", " The switch Statement", " Iteration Statements", " The while Statement", " The do Statement", " The for Statement", " Jump Statements", " The break Statement", " The continue Statement", " The return Statement", " The goto Statement", " Declaration Statements", " Declaration of Automatic Objects", " Declaration of Static Objects", " Exception Handling", " The try, catch, and throw Statements", " Structured Exception Handling", "Chapter 6. Declarations", " Specifiers", " Storage-Class Specifiers", " Function Specifiers", " typedef Specifier", " friend Specifier", " Type Specifiers", " Enumeration Declarations", " Enumerator Names", " Definition of Enumerator Constants", " Conversions and Enumerated Types", " Linkage Specifications", " Template Specifications", " Referencing a Template", " Function Templates", " Member Function Templates", " Explicit Instantiation", " Differences from Other Implementations", " Namespaces", " namespace Declaration", " namespace Definition", " Defining namespace Members", " Namespace Alias", " using Declaration", " using Directive", " Explicit Qualification", "Chapter 7. Declarators", " Overview of Declarators", " Type Names", " Abstract Declarators", " Ambiguity Resolution", " Pointers", " References", " Pointers to Members", " Array", " Function Declarations", " Default Arguments", " Function Definitions", " Functions with Variable Argument Lists", " Initializers", " Initializing Pointers to const Objects", " Uninitialized Objects", " Initializing Static Members", " Initializing Aggregates", " Initializing Character Arrays", " Initializing References", "Chapter 8. Classes", " Overview of Classes", " Defining Class Types", " Class-Type Objects", " Class Names", " Declaring and Accessing Class Names", " typedef Statements and Classes", " Class Members", " Class-Member Declaration Syntax", " Declaring Unsized Arrays in Member Lists", " Storage of Class-Member Data", " Member Naming Restrictions", " Member Functions", " Overview of Member Functions", " The this Pointer", " Static Data Members", " Unions", " Member Functions in Unions", " Unions as Class Types", " Union Member Data", " Anonymous Unions", " Bit Fields", " Restrictions on Use of Bit Fields", " Nested Class Declarations", " Access Privileges and Nested Classes", " Member Functions in Nested Classes", " Friend Functions and Nested Classes", " Type Names in Class Scope", "Chapter 9. Derived Classes", " Overview of Derived Classes", " Inheritance", " Multiple Inheritance", " Virtual Base Class Hierarchies", " Class Protocol Implementation", " Base Classes", " Multiple Base Classes", " Virtual Base Classes", " Name Ambiguities", " Virtual Functions", " Abstract Classes", " Restrictions on Using Abstract Classes", " Summary of Scope Rules", " Ambiguity", " Global Names", " Names and Qualified Names", " Function Argument Names", " Constructor Initializers", "Chapter 10. Member-Access Control", " Controlling Access to Class Members", " Access Specifiers", " Access Specifiers for Base Classes", " Access Control and Static Members", " Friends", " Friend Functions", " Class Member Functions and Classes as Friends", " Friend Declarations", " Defining Friend Functions in Class Declarations", " Protected Member Access", " Access to Virtual Functions", " Multiple Access", "Chapter 11. Special Member Functions", " Constructors", " What a Constructor Does", " Rules for Declaring Constructors", " Constructors and Arrays", " Order of Construction", " Destructors", " Declaring Destructors", " Using Destructors", " Order of Destruction", " Explicit Destructor Calls", " Temporary Objects", " Conversions", " Conversion Constructors", " Conversion Functions", " The new and delete Operators", " The operator new Function", " Handling Insufficient Memory Conditions", " The operator delete Function", " Initialization Using Special Member Functions", " Explicit Initialization", " Initializing Arrays", " Initializing Static Objects", " Initializing Bases and Members", " Copying Class Objects", " Compiler-Generated Copying", " Memberwise Assignment and Initialization", "Chapter 12. Overloading", " Overview of Overloading", " Argument Type Differences", " Restrictions on Overloaded Functions", " Declaration Matching", " Argument Matching", " Argument Matching and the this Pointer", " Argument Matching and Conversions", " Address of Overloaded Functions", " Overloaded Operators", " General Rules for Operator Overloading", " Unary Operators", " Binary Operators", " Assignment", " Function Call", " Subscripting", " Class-Member Access", "Appendixes", " Appendix A. Grammar Summary", " Keywords", " Expressions", " Declarations", " Declarators", " Classes", " Statements", " Microsoft Extensions", " Appendix B. Microsoft-Specific Modifiers", " Based Addressing", " Using __based in 32-bit Compilations", " Calling and Naming Convention Modifiers", " Extended Storage-Class Attributes", " Extended Attribute Syntax", " The thread Attribute", " The naked Attribute", " The dllexport and dllimport Attributes", " Using dllimport and dllexport in C++", " C++ Inline Assembler", " Appendix C. Microsoft-Specific Compiler COM Support Classes", " _com_error", " Member Functions", " _com_error::_com_error", " _com_error::Description", " _com_error::Error", " _com_error::ErrorInfo", " _com_error::ErrorMessage", " _com_error::GUID", " _com_error::HelpContext", " _com_error::HelpFile", " _com_error::HRESULTToWCode", " _com_error::Source", " _com_error::WCode", " _com_error::WCodeToHRESULT", " Operators", " _com_error::operator =", " _com_ptr_t", " Member Functions", " _com_ptr_t::_com_ptr_t", " _com_ptr_t::AddRef", " _com_ptr_t::Attach", " _com_ptr_t::CreateInstance", " _com_ptr_t::Detach", " _com_ptr_t::GetActiveObject", " _com_ptr_t::GetInterfacePtr", " _com_ptr_t::QueryInterface", " _com_ptr_t::Release", " Operators", " _com_ptr_t::operator =", " _com_ptr_t Relational Operators", " _com_ptr_t Extractors", " Relational Function Templates", " _bstr_t", " Member Functions", " _bstr_t::_bstr_t", " _bstr_t::copy", " _bstr_t::length", " Operators", " _bstr_t::operator =", " _bstr_t::operator +=, +", " _bstr_t::operator !", " _bstr_t Relational Operators", " _bstr_t::wchar_t*, _bstr_t::char*", " _variant_t", " Member Functions", " _variant_t::_variant_t", " _variant_t::Attach", " _variant_t::Clear", " _variant_t::ChangeType", " _variant_t::Detach", " _variant_t::SetString", " Operators", " _variant_t::operator =", " _variant_t Relational Operators", " _variant_t Extractors", " Appendix D. Charts", " ASCII Character Codes Chart 1", " ASCII Character Codes Chart 2", " ASCII Multilingual Codes Chart", " ANSI Character Codes Chart", " Key Codes Chart 1", " Key Codes Chart 2", "Figures and Tables", " Figures", " Figure 1.1 Escapes and String Concatenation", " Figure 2.1 Block Scope and Name Hiding", " Figure 3.1 Inheritance Graph for Illustraion of Base-Class Accessibility", " Figure 4.1 Expression-Evaluation Order", " Figure 4.2 Expression-Evaluation Order with Parentheses", " Figure 4.3 Class Hierarchy", " Figure 4.4 Class C with B Subobject and A Subobject", " Figure 4.5 Class Hierarchy showing Multiple Inheritance", " Figure 4.6 Class Hierarchy showing Virtual Base Classes", " Figure 4.7 Class Hierarchy showing Duplicate Base Classes", " Figure 7.1 Specifiers, Modifiers, and Declarators", " Figure 7.2 Conceptual Layout of Multidimensional Array", " Figure 7.3 Parts of a Function Definition", " Figure 7.4 Decision Graph for Initialization of Reference Types", " Figure 8.1 Storage of Data in NumericType Union", " Figure 8.2 Memory Layout of Date Object", " Figure 8.3 Layout of Date Object with Zeor-Length Bit Field", " Figure 9.1 Simple Single-Inheritance Graph", " Figure 9.2 Sample of Directed Acyclic Graph", " Figure 9.3 Simple Multiple-Inheritance Graph", " Figure 9.4 Multiple Instances of a Single Base Class", " Figure 9.5 Simulated Lunch-Line Graph", " Figure 9.6 Simulated Lunch-Line Object", " Figure 9.7 Simulated Lunch-Line Object with Virtual Base Classes", " Figure 9.8 Virtual and Nonvirtual Components of the Same Class", " Figure 9.9 Object Layout with Virtual and Nonvirtual Inheritance", " Figure 9.10 Virtual vs. Nonvirtual Derivation", " Figure 9.11 Ambiguous Conversion of Pointers to Base Classes", " Figure 10.1 Access Control in Classes", " Figure 10.2 Implications of friend Relationship", " Figure 10.3 Access Along Paths of an Inheritance Graph", " Figure 11.1 Inheritance Graph Showing Virtual Base Classes", " Figure 12.1 Graph Illustrating Preferred Conversions", " Figure 12.2 Multiple-Inheritance Graph Illustrating Preferred Conversions", " Tables", " Table 1.1 C++ Operator Precedence and Associativity", " Table 1.2 C++ Reserved or Nongraphic Characters", " Table 2.1 C++ Terminology", " Table 2.2 Results of Parsing Command Lines", " Table 2.3 Fundamental Types of the C++ Language", " Table 2.4 Sizes of Fundamental Types", " Table 2.5 Operators and Constructs Used with Pointers to Members", " Table 2.6 Limits on Integer Constants", " Table 2.7 Limits on Floating-Point Constants", " Table 3.1 Conditions for Type Conversion", " Table 3.2 Base-Class Accessability", " Table 4.1 Postfix Operators", " Table 4.2 Types Used with Additive Operators", " Table 4.3 Relational and Equality Operators", " Table 4.4 Assignment Operators", " Table 4.5 Operand Types Acceptable to Operators", " Table 5.1 Switch Statement Behavior", " Table 5.2 C++ Iteration Statements", " Table 5.3 for Loop Elements", " Table 6.1 Use of static and extern", " Table 6.2 Type Name Combinations", " Table 6.3 Effects of Linkage Specifications", " Table 7.1 Overloading Considerations", " Table 8.1 Access Control and Constraints of Structures, Classes, and Unions", " Table 8.2 Semantics of this Modifiers", " Table 10.1 Member-Access Control", " Table 10.2 Member Access in Base Class", " Table 11.1 Summary of Function Behavior", " Table 11.2 Default and Copy Constructors", " Table 11.3 Destruction Points for Temporary Objects", " Table 11.4 Scope for operator new Functions", " Table 12.1 Trivial Conversions", " Table 12.2 Redefinable Operators", " Table 12.3 Nonredefinable Operators", " Table 12.4 Redefinable Unary Operators", " Table 12.5 Redefinable Binary Operators", " Table B.1 Microsoft-Specific Keywords".

Preprocessor Language Reference:
Indeholder "Introduction", " Special Terminology", "Chapter 1. The Preprocessor", " Phases of Translation", " Preprocessor Directives", " The #define Directive", " The #error Directive", " The #if, #elif, #else, and #endif Directives", " The #ifdef and #ifndef Directives", " The #import Directive", " The #include Directive", " The #line Directive", " The Null Directive", " The #undef Directive", " Preprocessor Operators", " Stringizing Operator (#)", " Charizing Operator (#@)", " Token-Pasting Operator (##)", " Macros", " Macros and C++", " Predefined Macros", "Chapter 2. Pragma Directives", " Pragmas Specific to the C++ Compiler", " init_seg", " pointers_to_members", " vtordisp", " C and C++ Compiler Pragmas", " alloc_text", " auto_inline", " bss_seg", " check_stack", " code_seg", " const_seg", " comment", " component", " data_seg", " function", " hdrstop", " include_alias", " inline_depth", " inline_recursion", " intrinsic", " message", " once", " optimize", " pack", " setlocale", " warning", "Appendix. Grammar Summary", " Definitions for the Grammar Summary", " Conventions", " Preprocessor Grammar", "Index", "Tables", " Table 1.1 ANSI Predefined Macros", " Table 1.2 Microsoft-Specific Predefined Macros", " Table 1.3 Values for _M_IX86", " Table 1.4 Values for _M_MPPC", " Table 1.5 Values for _M_MRX000", " Table 1.6 Values for _M_PPC", " Table 2.1 Using the check_stack Pragma", " Table 2.2 Parameters of the optimize Pragma".

Sikkert udmærkede reference manualer, men helt uden eksempler og motivation. Det er fx fint at kunne slå C's operator hierarki op, men gud nåde og trøste dem, der skriver kode ud fra at de kan spare en parantes eller to ved at kunne de regler udenad.

C preprocessor er en sjov fisk, fordi den på en måde er en generel preprocessor, men alligevel er uhyggelig skræddersyet til lige præcis C. Så hellere bruge m4 eller bare sed. Hmm, siden jeg skrev det her, har jeg faktisk brugt m4. Det er ikke sjovt, fordi den kun næsten gør hvad man forventer. Fx har dobbelt quote og backtick rollen som markører i m4 og hvis man så kører en bash kommandofil igennem, kan man godt få m4 til at misforstå hvad man vil have gjort. Brug sed i stedet for cpp eller m4.
… (more)

Publication

Microsoft Press. 1998 :

Language

Original language

English

Physical description

xii, 230, xvii, 430, v, 56 p.; 22.8 cm

ISBN

1572315210 / 9781572315211

Local notes

Omslag: Ikke angivet
Omslaget viser 6 plusser, der danner et C
Indskannet omslag - N650U - 150 dpi
Page: 0.2417 seconds