oracle home
Oracle® Solaris Studio 12.4: C User's Guide
Exit Print View
Search Term
Search Scope:
This Document
Entire Library
Index A
Updated: March 2015
Oracle
®
Solaris Studio 12.4: C User's Guide
Document Information
Using This Documentation
Product Documentation Library
Access to Oracle Support
Feedback
Chapter 1 Introduction to the C Compiler
1.1 What's New in C Version 5.13 Oracle Solaris Studio 12.4 Release
1.2 Special x86 Notes
1.3 Binary Compatibility Verification
1.4 Compiling for 64–Bit Platforms
1.5 Standards Conformance
1.6 C Readme File
1.7 Man Pages
1.8 Organization of the Compiler
1.9 C-Related Programming Tools
Chapter 2 C-Compiler Implementation-Specific Information
2.1 Constants
2.1.1 Integer Constants
2.1.2 Character Constants
2.2 Linker Scoping Specifiers
2.3 Thread Local Storage Specifier
2.4 Floating Point, Nonstandard Mode
2.5 Labels as Values
2.6 long long Data Type
2.6.1 Printing long long Data Types
2.6.2 Usual Arithmetic Conversions
2.7 Case Ranges in Switch Statements
2.8 Assertions
2.9 Supported Attributes
2.9.1 __has_attribute function-like macro
2.10 Warnings and Errors
2.11 Pragmas
2.11.1 align
2.11.2 c99
2.11.3 does_not_read_global_data
2.11.4 does_not_return
2.11.5 does_not_write_global_data
2.11.6 dumpmacros
2.11.7 end_dumpmacros
2.11.8 error_messages
2.11.9 fini
2.11.10 hdrstop
2.11.11 ident
2.11.12 init
2.11.13 inline
2.11.14 int_to_unsigned
2.11.15 must_have_frame
2.11.16 nomemorydepend
2.11.17 no_side_effect
2.11.18 opt
2.11.19 pack
2.11.20 pipeloop
2.11.21 rarely_called
2.11.22 redefine_extname
2.11.23 returns_new_memory
2.11.24 unknown_control_flow
2.11.25 unroll
2.11.26 warn_missing_parameter_info
2.11.27 weak
2.12 Predefined Names
2.13 Preserving the Value of errno
2.14 Extensions
2.14.1 _Restrict Keyword
2.14.2 __asm Keyword
2.14.3 __inline and __inline__
2.14.4 __builtin_constant_p()
2.14.5 __FUNCTION__ and __PRETTY_FUNCTION__
2.14.6 untyped _Complex
2.14.7 __alignof__
2.15 Environment Variables
2.15.1 SUN_PROFDATA
2.15.2 SUN_PROFDATA_DIR
2.15.3 TMPDIR
2.16 How to Specify Include Files
2.16.1 Using the -I- Option to Change the Search Algorithm
2.16.1.1 Warnings
2.17 Compiling in Free-Standing Environments
2.18 Compiler Support for Intel MMX and Extended x86 Platform Intrinsics
2.19 Compiler Support for SPARC64X and SPARC64X+ Platform Intrinsics
2.19.1 SIMD Intrinsics
2.19.1.1 Types and Operations
2.19.1.2 Extensions to the Application Binary Interface
2.19.1.3 Intrinsic functions
2.19.2 Decimal Floating-Point Intrinsics
2.19.2.1 Types and Operations
2.19.2.2 Macros and Pragmas
2.19.2.3 Intrinsic functions
Chapter 3 Parallelizing C Code
3.1 Parallelizing Using OpenMP
3.2 Automatic Parallelization
3.2.1 Data Dependence and Interference
3.2.2 Private Scalars and Private Arrays
3.2.3 Storeback
3.2.4 Reduction Variables
3.2.5 Loop Transformations
3.2.5.1 Loop Distribution
3.2.5.2 Loop Fusion
3.2.5.3 Loop Interchange
3.2.6 Aliasing and Parallelization
3.2.6.1 Array and Pointer References
3.2.6.2 Restricted Pointers
3.3 Environment Variables
3.4 Parallel Execution Model
3.5 Speedups
3.5.1 Amdahl’s Law
3.5.1.1 Overheads
3.5.1.2 Gustafson’s Law
3.6 Memory-Barrier Intrinsics
Chapter 4 lint Source Code Checker
4.1 Basic and Enhanced lint Modes
4.2 Using lint
4.3 lint Command-Line Options
4.3.1 -#
4.3.2 -###
4.3.3 -a
4.3.4 -b
4.3.5 -C filename
4.3.6 -c
4.3.7 -dirout=dir
4.3.8 -err=warn
4.3.9 -errchk=l(, l)
4.3.10 -errfmt=f
4.3.11 -errhdr=h
4.3.12 -erroff=tag(, tag)
4.3.13 -errsecurity=level
4.3.14 -errtags=a
4.3.15 -errwarn=t
4.3.16 -F
4.3.17 -fd
4.3.18 -flagsrc=file
4.3.19 -h
4.3.20 -Idir
4.3.21 -k
4.3.22 -Ldir
4.3.23 -lx
4.3.24 -m
4.3.25 m32|m64
4.3.26 -Ncheck=c
4.3.27 -Nlevel=n
4.3.27.1 -Nlevel=1
4.3.27.2 -Nlevel=2
4.3.27.3 -Nlevel=3
4.3.27.4 -Nlevel=4
4.3.28 -n
4.3.29 -ox
4.3.30 -p
4.3.31 -Rfile
4.3.32 -s
4.3.33 -u
4.3.34 -V
4.3.35 -v
4.3.36 -Wfile
4.3.37 -XCC=a
4.3.38 -Xalias_level[=l]
4.3.39 -Xarch=amd64
4.3.40 -Xarch=v9
4.3.41 -Xc99[=o]
4.3.42 -Xkeeptmp=a
4.3.43 -Xtemp=dir
4.3.44 -Xtime=a
4.3.45 -Xtransition=a
4.3.46 -Xustr={ascii_utf16_ushort|no}
4.3.47 -x
4.3.48 -y
4.4 lint Messages
4.4.1 Options to Suppress Messages
4.4.2 lint Message Formats
4.5 lint Directives
4.5.1 Predefined Values
4.5.2 Directives
4.6 lint Reference and Examples
4.6.1 Diagnostics Performed by lint
4.6.1.1 Consistency Checks
4.6.1.2 Portability Checks
4.6.1.3 Questionable Constructs
4.6.2 lint Libraries
4.6.3 lint Filters
Chapter 5 Type-Based Alias Analysis
5.1 Introduction to Type-Based Analysis
5.2 Using Pragmas for Finer Control
5.2.1 #pragma alias_level level (list)
5.2.1.1 #pragma alias (type, type [, type]…)
5.2.1.2 #pragma alias (pointer, pointer [, pointer]…)
5.2.1.3 #pragma may_point_to (pointer, variable [, variable]…)
5.2.1.4 #pragma noalias (type, type [, type]…)
5.2.1.5 #pragma noalias (pointer, pointer [, pointer]…)
5.2.1.6 #pragma may_not_point_to (pointer, variable [, variable]…)
5.2.1.7 #pragma ivdep
5.3 Checking With lint
5.3.1 Struct Pointer Cast of Scalar Pointer
5.3.2 Struct Pointer Cast of Void Pointer
5.3.3 Cast of Struct Field to Structure Pointer
5.3.4 Explicit Aliasing Required
5.4 Examples of Memory Reference Constraints
5.4.1 Example: Levels of Aliasing
5.4.2 Example: Compiling with Different Aliasing Levels
5.4.3 Example: Interior Pointers
5.4.4 Example: Struct Fields
5.4.5 Example: Unions
5.4.6 Example: Structs of Structs
5.4.7 Example: Using a Pragma
Chapter 6 Transitioning to ISO C
6.1 New-Style Function Prototypes
6.1.1 Writing New Code
6.1.2 Updating Existing Code
6.1.3 Mixing Considerations
6.2 Functions With Varying Arguments
6.3 Promotions: Unsigned Versus Value Preserving
6.3.1 Some Background History
6.3.2 Compilation Behavior
6.3.3 Example: The Use of a Cast
6.3.4 Example: Same Result, No Warning
6.3.5 Integral Constants
6.3.6 Example: Integral Constants
6.4 Tokenization and Preprocessing
6.4.1 ISO C Translation Phases
6.4.2 Old C Translation Phases
6.4.3 Logical Source Lines
6.4.4 Macro Replacement
6.4.5 Using Strings
6.4.6 Token Pasting
6.5 const and volatile
6.5.1 Types for lvalue Only
6.5.2 Type Qualifiers in Derived Types
6.5.3 const Means readonly
6.5.4 Examples of const Usage
6.5.5 Examples of volatile Usage
6.6 Multibyte Characters and Wide Characters
6.6.1 Asian Languages Require Multibyte Characters
6.6.2 Encoding Variations
6.6.3 Wide Characters
6.6.4 C Language Features
6.7 Standard Headers and Reserved Names
6.7.1 Standard Headers
6.7.2 Names Reserved for Implementation Use
6.7.3 Names Reserved for Expansion
6.7.4 Names Safe to Use
6.8 Internationalization
6.8.1 Locales
6.8.2 setlocale() Function
6.8.3 Changed Functions
6.8.4 New Functions
6.9 Grouping and Evaluation in Expressions
6.9.1 Expression Definitions
6.9.2 K&R C Rearrangement License
6.9.3 ISO C Rules
6.9.4 Parentheses Usage
6.9.5 The As If Rule
6.10 Incomplete Types
6.10.1 Types
6.10.2 Completing Incomplete Types
6.10.3 Declarations
6.10.4 Expressions
6.10.5 Justification
6.10.6 Examples: Incomplete Types
6.11 Compatible and Composite Types
6.11.1 Multiple Declarations
6.11.2 Separate Compilation Compatibility
6.11.3 Single Compilation Compatibility
6.11.4 Compatible Pointer Types
6.11.5 Compatible Array Types
6.11.6 Compatible Function Types
6.11.7 Special Cases
6.11.8 Composite Types
Chapter 7 Converting Applications for a 64-Bit Environment
7.1 Overview of the Data Model Differences
7.2 Implementing Single Source Code
7.2.1 Derived Types
7.2.1.1 <sys/types.h>
7.2.1.2 <inttypes.h>
Fixed-Width Integer Types
Helpful Types Such as unintptr_t
Constant Macros
Limits
Format String Macros
7.2.2 Checking With lint
7.3 Converting to the LP64 Data Type Model
7.3.1 Integer and Pointer Size Change
7.3.2 Integer and Long Size Change
7.3.3 Sign Extension
7.3.4 Pointer Arithmetic Instead of Integers
7.3.5 Structures
7.3.6 Unions
7.3.7 Type Constants
7.3.8 Beware of Implicit Declarations
7.3.9 sizeof( ) Is an Unsigned long
7.3.10 Use Casts to Show Your Intentions
7.3.11 Check Format String Conversion Operation
7.4 Other Conversion Considerations
7.4.1 Note: Derived Types That Have Grown in Size
7.4.2 Check for Side Effects of Changes
7.4.3 Check Literal Uses of long Still Make Sense
7.4.4 Use #ifdef for Explicit 32-bit Versus 64-bit Prototypes
7.4.5 Calling Convention Changes
7.4.6 Algorithm Changes
7.5 Checklist for Getting Started
Chapter 8 cscope: Interactively Examining a C Program
8.1 The cscope Process
8.2 Basic Use
8.2.1 Step 1: Set Up the Environment
8.2.2 Step 2: Invoke the cscope Program
8.2.3 Step 3: Locate the Code
8.2.4 Step 4: Edit the Code
8.2.5 Command-Line Options
8.2.6 View Paths
8.2.7 cscope and Editor Call Stacks
8.2.8 Examples
8.2.8.1 Changing a Constant to a Preprocessor Symbol
8.2.8.2 Adding an Argument to a Function
8.2.8.3 Changing the Value of a Variable
8.2.9 Command-Line Syntax for Editors
8.3 Unknown Terminal Type Error
Appendix A Compiler Options Grouped by Functionality
A.1 Options Summarized by Function
A.1.1 Optimization and Performance Options
A.1.2 Compile-Time and Link-Time Options
A.1.3 Data-Alignment Options
A.1.4 Numerics and Floating-Point Options
A.1.5 Parallelization Options
A.1.6 Source Code Options
A.1.7 Compiled Code Options
A.1.8 Compilation Mode Options
A.1.9 Diagnostic Options
A.1.10 Debugging Options
A.1.11 Linking and Libraries Options
A.1.12 Target Platform Options
A.1.13 x86-Specific Options
A.1.14 Obsolete Options
Appendix B C Compiler Options Reference
B.1 Option Syntax
B.2 cc Options
B.2.1 -#
B.2.2 -###
B.2.3 Aname[(tokens)]
B.2.4 -ansi
B.2.5 -B[static|dynamic]
B.2.6 -C
B.2.7 -c
B.2.8 -Dname[(arg[,arg])][=expansion]
B.2.9 -d[y|n]
B.2.10 -dalign
B.2.11 -E
B.2.12 -errfmt[=[no%]error]
B.2.13 -errhdr[=h]
B.2.14 -erroff[=t]
B.2.15 -errshort[=i]
B.2.16 -errtags[=a]
B.2.17 -errwarn[=t]
B.2.18 -fast
B.2.19 -fd
B.2.20 -features=[v]
B.2.20.1 —features=typeof Examples
B.2.21 -flags
B.2.22 -flteval[={any|2}]
B.2.23 fma[={none|fused}]
B.2.24 -fnonstd
B.2.25 -fns[={no|yes}]
B.2.26 -fopenmp
B.2.27 -fPIC
B.2.28 -fpic
B.2.29 -fprecision=p
B.2.30 -fround=r
B.2.31 -fsimple[=n]
B.2.32 -fsingle
B.2.33 -fstore
B.2.34 -ftrap=t[,t...]
B.2.35 -G
B.2.36 -g
B.2.37 -g[n]
B.2.38 -H
B.2.39 -h name
B.2.40 -I[-|dir]
B.2.41 -i
B.2.42 include filename
B.2.43 -KPIC
B.2.44 -Kpic
B.2.45 -keeptmp
B.2.46 -Ldir
B.2.47 -lname
B.2.48 -library=sunperf
B.2.49 m32|m64
B.2.50 -mc
B.2.51 -misalign
B.2.52 -misalign2
B.2.53 -mr[,string]
B.2.54 -mt[={yes|no}]
B.2.55 -native
B.2.56 -nofstore
B.2.57 -O
B.2.58 -o filename
B.2.59 -P
B.2.60 -p
B.2.61 –pedantic{=[yes|no]}
B.2.62 –preserve_argvalues[=simple|none|complete]
B.2.63 –Qoption phase option[,option..]
B.2.64 -Q[y|n]
B.2.65 -qp
B.2.66 -Rdir[:dir]
B.2.67 -S
B.2.68 -s
B.2.69 -staticlib=[no%]sunperf
B.2.70 –std=value
B.2.71 –temp=path
B.2.71.1 See Also
B.2.72 -traceback[={%none|common|signals_list}]
B.2.73 -Uname
B.2.74 -V
B.2.75 -v
B.2.76 -Wc,arg
B.2.77 -w
B.2.78 -X[c|a|t|s]
B.2.79 -x386
B.2.80 -x486
B.2.81 -Xlinker arg
B.2.82 -xaddr32[=yes|no]
B.2.83 -xalias_level[=l]
B.2.84 -xanalyze={code|%none}
B.2.85 xannotate[=yes|no]
B.2.86 –xarch=isa
B.2.86.1 -xarch Flags for SPARC and x86
B.2.86.2 -xarch Flags for SPARC
B.2.86.3 -xarch Flags for x86
B.2.86.4 Interactions
B.2.86.5 Warnings
B.2.87 -xautopar
B.2.88 -xbinopt={prepare|off}
B.2.89 -xbuiltin[=(%all|%default|%none)]
B.2.90 -xCC
B.2.91 -xc99[=o]
B.2.92 -xcache[=c]
B.2.93 –xcg[89|92]
B.2.94 -xchar[=o]
B.2.95 -xchar_byte_order[=o]
B.2.96 -xcheck[=o[,o]]
B.2.96.1 Initialization Values for -xcheck=init_local
Basic Types
Initializing Structs, Unions, and Arrays
B.2.97 -xchip[=c]
B.2.98 -xcode[=v]
B.2.99 -xcrossfile
B.2.100 -xcsi
B.2.101 -xdebugformat=[stabs|dwarf]
B.2.102 -xdebuginfo=a[,a...]
B.2.103 -xdepend=[yes|no]
B.2.104 -xdryrun
B.2.105 -xdumpmacros[=value[,value...]]
B.2.106 -xe
B.2.107 xF[=v[,v...]]
B.2.107.1 Values
B.2.108 -xglobalize[={yes|no}]
B.2.108.1 Interactions
B.2.109 -xhelp=flags
B.2.110 -xhwcprof
B.2.111 -xinline=list
B.2.112 xinline_param=a[,a[,a]...]
B.2.113 xinline_report[=n]
B.2.114 xinstrument=[no%]datarace
B.2.115 -xipo[=a]
B.2.115.1 -xipo Examples
B.2.115.2 When Not To Use -xipo=2 Interprocedural Analysis
B.2.116 -xipo_archive=[a]
B.2.117 -xipo_build=[yes|no]
B.2.117.1 -xipo_build Examples
B.2.118 -xivdep[=p]
B.2.119 -xjobs{=n|auto}
B.2.119.1 -xjobs Examples
B.2.120 -xkeep_unref[={[no%]funcs,[no%]vars}]
B.2.121 -xkeepframe[=[%all,%none,name,no%name]]
B.2.122 -xlang=language
B.2.123 -xldscope={v}
B.2.124 -xlibmieee
B.2.125 -xlibmil
B.2.126 -xlibmopt
B.2.127 -xlic_lib=sunperf
B.2.128 -xlicinfo
B.2.129 -xlinkopt[=level]
B.2.130 -xloopinfo
B.2.131 -xM
B.2.132 -xM1
B.2.133 -xMD
B.2.134 -xMF filename
B.2.135 -xMMD
B.2.136 -xMerge
B.2.137 -xmaxopt[=v]
B.2.138 -xmemalign=ab
B.2.139 -xmodel=[a]
B.2.140 -xnolib
B.2.141 -xnolibmil
B.2.142 -xnolibmopt
B.2.143 xnorunpath
B.2.144 -xO[1|2|3|4|5]
B.2.144.1 SPARC Optimizations
B.2.144.2 x86 Optimization Levels
B.2.145 -xopenmp[={parallel|noopt|none}]
B.2.146 -xP
B.2.147 -xpagesize=n
B.2.148 -xpagesize_heap=n
B.2.149 -xpagesize_stack=n
B.2.150 -xpatchpadding[={fix|patch|size}]
B.2.151 -xpch=v
B.2.151.1 Creating a Precompiled-Header File Automatically
B.2.151.2 Creating a Precompiled-Header File Manually
B.2.151.3 How the Compiler Handles an Existing Precompiled-Header File
B.2.151.4 Directing the Compiler to Use a Specific Precompiled-Header File
B.2.151.5 The Viable Prefix
B.2.151.6 Screening a Header File for Problems
B.2.151.7 Precompiled-Header File Cache
B.2.151.8 Caveats
B.2.151.9 Precompiled-Header File Dependencies and make Files
B.2.152 -xpchstop=[file|<include>]
B.2.153 xpec[={yes|no}]
B.2.154 -xpentium
B.2.155 -xpg
B.2.156 -xprefetch[=val[,val]]
B.2.156.1 Prefetch Latency Ratio (SPARC)
B.2.157 -xprefetch_auto_type=a
B.2.158 -xprefetch_level=l
B.2.159 -xprevise={yes|no}
B.2.160 –xprofile=p
B.2.161 -xprofile_ircache[=path]
B.2.162 -xprofile_pathmap
B.2.163 -xreduction
B.2.164 -xregs=r[,r…]
B.2.165 -xrestrict[=f]
B.2.166 –xs[={yes|no}]
B.2.167 -xsafe=mem
B.2.168 -xsegment_align=n
B.2.169 -xsfpconst
B.2.170 -xspace
B.2.171 -xstrconst
B.2.172 -xtarget=t
B.2.172.1 xtarget Values on SPARC Platforms
B.2.172.2 xtarget Values on x86 Platforms
B.2.173 -xtemp=path
B.2.174 -xthreadvar[=o]
B.2.175 -xthroughput[={yes|no}]
B.2.176 -xtime
B.2.177 -xtransition
B.2.178 -xtrigraphs[={yes|no}]
B.2.179 -xunboundsym={yes|no}
B.2.180 -xunroll=n
B.2.181 -xustr={ascii_utf16_ushort|no}
B.2.182 -xvector[=a]
B.2.183 -xvis
B.2.184 -xvpara
B.2.185 -Yc, dir
B.2.186 -YA, dir
B.2.187 -YI, dir
B.2.188 -YP, dir
B.2.189 -YS, dir
B.2.190 -Zll
B.3 Options Passed to the Linker
B.4 User-Supplied Default Options File
Appendix C Features of C11
C.1 Keywords
C.2 C11 Supported Features
C.2.1 _Alignas specifier
C.2.2 _Alignof operator
C.2.3 _Noreturn
C.2.4 _Static_assert
C.2.5 Universal Character Names (UCN)
Appendix D Features of C99
D.1 Discussion and Examples
D.1.1 Precision of Floating Point Evaluators
D.1.2 C99 Keywords
D.1.2.1 Using the restrict Keyword
D.1.3 __func__ Support
D.1.4 Universal Character Names (UCN)
D.1.5 Commenting Code With //
D.1.6 Disallowed Implicit int and Implicit Function Declarations
D.1.7 Declarations Using Implicit int
D.1.8 Flexible Array Members
D.1.9 Idempotent Qualifiers
D.1.10 inline Functions
D.1.10.1 Oracle Solaris Studio C compiler gcc compatibility for inline functions
D.1.11 Static and Other Type Qualifiers Allowed in Array Declarators
D.1.12 Variable Length Arrays (VLA):
D.1.13 Designated Initializers
D.1.14 Mixed Declarations and Code
D.1.15 Declaration in for-Loop Statement
D.1.16 Macros With a Variable Number of Arguments
D.1.17 _Pragma
Appendix E Implementation-Defined ISO/IEC C99 Behavior
E.1 Implementation-defined Behavior (J.3 )
E.1.1 Translation (J.3.1 )
E.1.2 Environment (J.3.2)
E.1.3 Identifiers (J.3.3)
E.1.4 Characters (J.3.4)
E.1.5 Integers (J.3.5)
E.1.6 Floating point (J.3.6)
E.1.7 Arrays and Pointers (J.3.7)
E.1.8 Hints (J.3.8)
E.1.9 Structures, Unions, Enumerations, and Bit-fields (J.3.9)
E.1.10 Qualifiers (J.3.10)
E.1.11 Preprocessing Directives (J.3.11)
E.1.12 Library Functions (J.3.12)
E.1.13 Architecture (J.3.13)
E.1.14 Locale-specific Behavior (J.4)
Appendix F Implementation-Defined ISO/IEC C90 Behavior
F.1 Implementation Compared to the ISO Standard
F.1.1 Translation (G.3.1)
F.1.1.1 (5.1.1.3) Identification of diagnostics:
F.1.2 Environment (G.3.2)
F.1.2.1 (5.1.2.2.1) Semantics of arguments to main:
F.1.2.2 (5.1.2.3) What constitutes an interactive device:
F.1.3 Identifiers (G.3.3)
F.1.3.1 (6.1.2) The number of significant initial characters (beyond 31) in an identifier without external linkage:
(6.1.2) The number of significant initial characters (beyond 6) in an identifier with external linkage:
F.1.4 Characters (G.3.4)
F.1.4.1 (5.2.1) The members of the source and execution character sets, except as explicitly specified in the Standard:
F.1.4.2 (5.2.1.2) The shift states used for the encoding of multibyte characters:
F.1.4.3 (5.2.4.2.1) The number of bits in a character in the execution character set:
F.1.4.4 (6.1.3.4) The mapping of members of the source character set (in character and string literals) to members of the execution character set:
F.1.4.5 (6.1.3.4) The value of an integer character constant that contains a character or escape sequence not represented in the basic execution character set or the extended character set for a wide character constant:
F.1.4.6 (3.1.3.4) The value of an integer character constant that contains more than one character or a wide character constant that contains more than one multibyte character:
F.1.4.7 (6.1.3.4) The current locale used to convert multibyte characters into corresponding wide characters (codes) for a wide character constant:
F.1.4.8 (6.2.1.1) Whether a plain char has the same range of values as signed char or unsigned char:
F.1.5 Integers (G.3.5)
F.1.5.1 (6.1.2.5) The representations and sets of values of the various types of integers:
F.1.5.2 (6.2.1.2) The result of converting an integer to a shorter signed integer, or the result of converting an unsigned integer to a signed integer of equal length, if the value cannot be represented:
F.1.5.3 (6.3) The results of bitwise operations on signed integers:
F.1.5.4 (6.3.5) The sign of the remainder on integer division:
F.1.5.5 (6.3.7) The result of a right shift of a negative-valued signed integral type:
F.1.6 Floating-Point (G.3.6)
F.1.6.1 (6.1.2.5) The representations and sets of values of the various types of floating-point numbers:
F.1.6.2 (6.2.1.3) The direction of truncation when an integral number is converted to a floating-point number that cannot exactly represent the original value:
F.1.6.3 (6.2.1.4) The direction of truncation or rounding when a floating- point number is converted to a narrower floating-point number:
F.1.7 Arrays and Pointers (G.3.7)
F.1.7.1 (6.3.3.4, 7.1.1) The type of integer required to hold the maximum size of an array; that is, the type of the sizeof operator, size_t:
F.1.7.2 (6.3.4) The result of casting a pointer to an integer, or vice versa:
F.1.7.3 (6.3.6, 7.1.1) The type of integer required to hold the difference between two pointers to members of the same array, ptrdiff_t:
F.1.8 Registers (G.3.8)
F.1.8.1 (6.5.1) The extent to which objects can actually be placed in registers by use of the register storage-class specifier:
F.1.9 Structures, Unions, Enumerations, and Bit-Fields (G.3.9)
F.1.9.1 (6.3.2.3) A member of a union object is accessed using a member of a different type:
F.1.9.2 (6.5.2.1) The padding and alignment of members of structures.
F.1.9.3 (6.5.2.1) Whether a plain int bit-field is treated as a signed int bit-field or as an unsigned int bit-field:
F.1.9.4 (6.5.2.1) The order of allocation of bit-fields within an int:
F.1.9.5 (6.5.2.1) Whether a bit-field can straddle a storage-unit boundary:
F.1.9.6 (6.5.2.2) The integer type chosen to represent the values of an enumeration type:
F.1.10 Qualifiers (G.3.10)
F.1.10.1 (6.5.5.3) What constitutes an access to an object that has volatile-qualified type:
F.1.11 Declarators (G.3.11)
F.1.11.1 (6.5.4) The maximum number of declarators that may modify an arithmetic, structure, or union type:
F.1.12 Statements (G.3.12)
F.1.12.1 (6.6.4.2) The maximum number of case values in a switch statement:
F.1.13 Preprocessing Directives (G.3.13)
F.1.13.1 (6.8.1) Whether the value of a single-character character constant in a constant expression that controls conditional inclusion matches the value of the same character constant in the execution character set:
F.1.13.2 (6.8.1) Whether such a character constant may have a negative value:
F.1.13.3 (6.8.2) The method for locating includable source files:
F.1.13.4 (6.8.2) The support of quoted names for includable source files:
F.1.13.5 (6.8.2) The mapping of source file character sequences:
F.1.13.6 (6.8.6) The behavior on each recognized #pragma directive:
F.1.13.7 (6.8.8) The definitions for __DATE__ and __TIME__ when, respectively, the date and time of translation are not available:
F.1.14 Library Functions (G.3.14)
F.1.14.1 (7.1.6) The null pointer constant to which the macro NULL expands:
F.1.14.2 (7.2) The diagnostic printed by and the termination behavior of the assert function:
F.1.14.3 (7.3.1) The sets of characters tested for by the isalnum, isalpha, iscntrl, islower, isprint, and isupper functions:
F.1.14.4 (7.5.1) The values returned by the mathematics functions on domain errors:
F.1.14.5 (7.5.1) Whether the mathematics functions set the integer expression errno to the value of the macro ERANGE on underflow range errors:
F.1.14.6 (7.5.6.4) Whether a domain error occurs or zero is returned when the fmod function has a second argument of zero:
F.1.14.7 (7.7.1.1) The set of signals for the signal function:
F.1.14.8 (7.7.1.1) The default handling and the handling at program startup for each signal recognized by the signal function:
F.1.14.9 (7.7.1.1) If the equivalent of signal(sig, SIG_DFL); is not executed prior to the call of a signal handler, the blocking of the signal that is performed:
F.1.14.10 (7.7.1.1) Whether the default handling is reset if the SIGILL signal is received by a handler specified to the signal function:
F.1.14.11 (7.9.2) Whether the last line of a text stream requires a terminating new-line character:
F.1.14.12 (7.9.2) Whether space characters that are written out to a text stream immediately before a new-line character appear when read in:
F.1.14.13 (7.9.2) The number of null characters that may be appended to data written to a binary stream:
F.1.14.14 (7.9.3) Whether the file position indicator of an append mode stream is initially positioned at the beginning or end of the file:
F.1.14.15 (7.9.3) Whether a write on a text stream causes the associated file to be truncated beyond that point:
F.1.14.16 (7.9.3) The characteristics of file buffering:
F.1.14.17 (7.9.3) Whether a zero-length file actually exists:
F.1.14.18 (7.9.3) The rules for composing valid file names:
F.1.14.19 (7.9.3) Whether the same file can be open multiple times:
F.1.14.20 (7.9.4.1) The effect of the remove function on an open file:
F.1.14.21 (7.9.4.2) The effect if a file with the new name exists prior to a call to the rename function:
F.1.14.22 (7.9.6.1) The output for %p conversion in the fprintf function:
F.1.14.23 (7.9.6.2) The input for %p conversion in the fscanf function:
F.1.14.24 (7.9.6.2) The interpretation of a- character that is neither the first nor the last character in the scan list for %[ conversion in the fscanf function:
F.1.15 Locale-Specific Behavior (G.4)
F.1.15.1 (7.12.1) The local time zone and Daylight Savings Time:
F.1.15.2 (7.12.2.1) The era for the clock function
F.1.15.3 (5.2.1) The content of the execution character set, in addition to the required members:
F.1.15.4 (5.2.2) The direction of printing:
F.1.15.5 (7.1.1) The decimal-point character:
F.1.15.6 (7.3) The implementation-defined aspects of character testing and case mapping functions:
F.1.15.7 (7.11.4.4) The collation sequence of the execution character set:
F.1.15.8 (7.12.3.5) The formats for time and date:
Appendix G ISO C Data Representations
G.1 Storage Allocation
G.2 Data Representations
G.2.1 Integer Representations
G.2.2 Floating-Point Representations
G.2.3 Exceptional Values
G.2.4 Hexadecimal Representation of Selected Numbers
G.2.5 Pointer Representation
G.2.6 Array Storage
G.2.7 Arithmetic Operations on Exceptional Values
G.3 Argument-Passing Mechanism
G.3.1 32-Bit SPARC
G.3.2 64-Bit SPARC
G.3.3 x86/x64
Appendix H Performance Tuning
H.1 libfast.a Library (SPARC)
Appendix I Oracle Solaris Studio C: Differences Between K&R C and ISO C
I.1 Incompatibilities
I.2 Keywords
Index
Index Numbers and Symbols
Index A
Index B
Index C
Index D
Index E
Index F
Index G
Index H
Index I
Index J
Index K
Index L
Index M
Index N
Index O
Index P
Index Q
Index R
Index S
Index T
Index U
Index V
Index W
Index Z
Please tell us how to improve our documentation:
Provide more details about the topic
Fix incorrect information
0 of 500
Provide missing information
0 of 500
Provide translated version
--Select--
Deutsch
Español
Français
Italiano
Português Brasil
日本語
한국어
简体中文
繁體中文
Other Language
Other
0 of 500
Terms of Use |
Your Privacy Rights
Thank you for your feedback! If you want to participate in content improvement and share additional information, please click Feedback button.
Rate this document:
Language:
English
A
#assert
Aname[(tokens)]
Assertions
abort
function
Library Functions (J.3.12)
acomp
(C compiler)
Components of the C Compilation System
alias disambiguation
Example: Using a Pragma
Type-Based Alias Analysis
alignment of structures
(6.5.2.1) The padding and alignment of members of structures.
any
level alias disambiguation
Levels of Alias-Disambiguation
arithmetic conversions
Usual Arithmetic Conversions
Usual Arithmetic Conversions
array
declarators per C99
Static and Other Type Qualifiers Allowed in Array Declarators
incomplete array types per C99
Flexible Array Members
ascftime
function
The -errsecurity Flags
assembler
Components of the C Compilation System
assembly in source
__asm Keyword
assembly language templates
-xvis
ATS: Automatic Tuning System
xpec[={yes|no}]
attributes
Supported Attributes
Previous
Next