Keil™, An ARM® Company

RealView Compiler Reference Guide

Technical Support

On-Line Manuals

RealView Compiler Reference Guide

Preface Introduction Compiler Command-line Options Language Extensions Compiler-specific Features Keywords and operators __align __alignof__ __ALIGNOF__ __asm __forceinline __global_reg __inline __int64 __INTADDR__ __irq __packed __pure __smc __softfp __svc __svc_indirect __svc_indirect_r7 __value_in_regs __weak __writeonly __declspec attributes __declspec(dllexport) __declspec(dllimport) __declspec(noinline) __declspec(noreturn) __declspec(nothrow) __declspec(notshared) __declspec(thread) Function attributes __attribute__((alias)) __attribute__((always_inline)) __attribute__((const)) __attribute__((deprecated)) __attribute__((malloc)) __attribute__((noinline)) __attribute__((no_instrument_function)) __attribute__((nomerge)) __attribute__((nonnull)) __attribute__((noreturn)) __attribute__((notailcall)) __attribute__((pure)) __attribute__((section("name"))) __attribute__((unused)) __attribute__((used)) __attribute__((visibility("visibility_type"))) __attribute__((weak)) Type attributes __attribute__((bitband)) __attribute__((aligned)) __attribute((packed)) __attribute__((transparent_union)) Variable attributes __attribute__((alias)) __attribute__((at(address))) __attribute__((aligned)) __attribute__((deprecated)) __attribute__((packed)) __attribute__((section("name"))) __attribute__((transparent_union)) __attribute__((unused)) __attribute__((used)) __attribute__((visibility("visibility_type"))) __attribute__((weak)) __attribute__((zero_init)) Pragmas #pragma anon_unions, #pragma no_anon_unions #pragma arm #pragma arm section [section_sort_list] #pragma diag_default tag[,tag,...] #pragma diag_error tag[,tag,...] #pragma diag_remark tag[,tag,...] #pragma diag_suppress tag[,tag,...] #pragma diag_warning tag[, tag, ...] #pragma exceptions_unwind, #pragma no_exceptions_u #pragma hdrstop #pragma import symbol_name #pragma import(__use_full_stdio) #pragma inline, #pragma no_inline #pragma no_pch #pragma Onum #pragma once #pragma Ospace #pragma Otime #pragma pack(n) #pragma pop #pragma push #pragma softfp_linkage, #pragma no_softfp_linkage #pragma unroll [(n)] #pragma unroll_completely #pragma thumb Instruction intrinsics __breakpoint __cdp __clrex __clz __current_pc __current_sp __disable_fiq __disable_irq __enable_fiq __enable_irq __fabs __fabsf __force_stores __ldrex __ldrexd __ldrt __memory_changed __nop __pld __pli __qadd __qdbl __qsub __rbit __rev __return_address __ror __schedule_barrier __sev __sqrt __sqrtf __ssat __strex __strexd __strt __swp __usat __wfe __wfi __yield ARMv6 SIMD intrinsics ETSI basic operations C55x intrinsics Named register variables VFP status intrinsic __vfp_status GNU builtin functions Nonstandard functions C99 functions C99 functions in the C90 reserved namespace C94 functions C90 functions C99 floating-point functions Other builtin functions Compiler predefines Predefined macros Function names C and C++ Implementation Details Via File Syntax Standard C Implementation Definition Standard C++ Implementation Definition C and C++ Compiler Implementation Limits

__alignof__

4.1.2. __alignof__

The __alignof__ keyword enables you to enquire about the alignment of a type or variable.

Note

This keyword is a GNU compiler extension that is supported by the ARM compiler.

Syntax

__alignof__(type)
__alignof__(expr)

Where:

type

is a type

expr

is an lvalue.

Return value

__alignof__(type) returns the alignment requirement for the type type, or 1 if there is no alignment requirement.

__alignof__(expr) returns the alignment requirement for the type of the lvalue expr, or 1 if there is no alignment requirement.

Example

int Alignment_0(void)
{
    return __alignof__(int);
}

See also

Copyright © 2007, 2008 ARM Limited. All rights reserved.ARM DUI 0376B
Non-ConfidentialUnrestricted Access