C Language Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
VSI OpenVMS C Language Reference Manual Document Number: xx-xxxxxx-xxx Publication Date: month 2018 This document is the language reference manual for the C language. Revision Update Information: This is a new manual. Operating system and Version: VSI OpenVMS Version X.X Software Version: VSI C Version X.X VMS Software, Inc., (VSI) Bolton, Massachusetts, USA VSI OpenVMS C Language Reference Manual: Copyright © 2018 VMS Software, Inc., (VSI), Bolton Massachusetts, USA Legal Notice Confidential computer software. Valid license from VSI required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor's standard commercial license. The information contained herein is subject to change without notice. The only warranties for VSI products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. VSI shall not be liable for technical or editorial errors or omissions contained herein. HPE, HPE Integrity, HPE Alpha, and HPE Proliant are trademarks or registered trademarks of Hewlett Packard Enterprise. Intel, Itanium and IA64 are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Java, the coffee cup logo, and all Java based marks are trademarks or registered trademarks of Oracle Corporation in the United States or other countries. Kerberos is a trademark of the Massachusetts Institute of Technology. Microsoft, Windows, Windows-NT and Microsoft XP are U.S. registered trademarks of Microsoft Corporation. Microsoft Vista is either a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries. Motif is a registered trademark of The Open Group UNIX is a registered trademark of The Open Group. The VSI OpenVMS documentation set is available on DVD. ii C Language Reference Manual Preface ................................................................................................................................... ix 1. Intended Audience ............................................................................................................ ix 2. Purpose of the ANSI Standard ............................................................................................ ix 3. Manual Structure ............................................................................................................... x 4. Associated Documents ....................................................................................................... x 5. Conventions .................................................................................................................... xi 6. VSI Encourages Your Comments ........................................................................................ xi 7. How to Order Additional Documentation ............................................................................. xii Chapter 1. Lexicon ................................................................................................................ 1 1.1. Character Set ................................................................................................................. 2 1.1.1. Trigraph Sequences ............................................................................................... 4 1.1.2. Digraph Sequences ............................................................................................... 4 1.2. Identifiers ...................................................................................................................... 5 1.3. Universal Character Names ............................................................................................... 6 1.4. Comments ..................................................................................................................... 6 1.5. Keywords ...................................................................................................................... 7 1.6. Operators ....................................................................................................................... 8 1.7. Punctuators .................................................................................................................... 9 1.8. String Literals ............................................................................................................... 10 1.9. Constants ..................................................................................................................... 10 1.9.1. Integer Constants ................................................................................................ 11 1.9.2. Floating-Point Constants ...................................................................................... 12 1.9.3. Character Constants ............................................................................................ 14 1.9.4. Enumeration Constants ........................................................................................ 16 1.10. Header Files ............................................................................................................... 16 1.11. Limits ........................................................................................................................ 17 1.11.1. Translation Limits ............................................................................................. 17 1.11.2. Numerical Limits .............................................................................................. 18 1.11.3. Character Display .............................................................................................. 18 Chapter 2. Basic Concepts ................................................................................................. 19 2.1. Blocks ......................................................................................................................... 20 2.2. Compilation Units ......................................................................................................... 20 2.3. Scope .......................................................................................................................... 21 2.3.1. File Scope ......................................................................................................... 21 2.3.2. Block Scope ...................................................................................................... 21 2.3.3. Function Scope .................................................................................................. 22 2.3.4. Function Prototype Scope ..................................................................................... 22 2.4. Visibility ...................................................................................................................... 22 2.5. Side Effects and Sequence Points ..................................................................................... 23 2.6. Incomplete Type ........................................................................................................... 24 2.7. Compatible and Composite Types .................................................................................... 24 2.8. Linkage ....................................................................................................................... 26 2.9. Tentative Definitions ...................................................................................................... 27 2.10. Storage Classes ........................................................................................................... 27 2.10.1. The auto Class .................................................................................................. 28 2.10.2. The register Class ............................................................................................. 28 2.10.3. The static Class ................................................................................................ 29 2.10.4. The extern Class ............................................................................................... 29 2.11. Storage-Class Modifiers ................................................................................................ 29 2.11.1. The __inline Modifier ........................................................................................ 30 2.11.2. The inline Modifier ........................................................................................... 30 2.11.3. The __forceinline Modifier ................................................................................. 33 2.11.4. The __align Modifier ......................................................................................... 33 2.12. Forward References ..................................................................................................... 34 2.13. Tags .......................................................................................................................... 34 2.14. lvalues and rvalues ...................................................................................................... 36 iii C Language Reference Manual 2.15. Name Spaces .............................................................................................................. 36 2.16. Preprocessing .............................................................................................................