Storage-class Qualifiers
Storage-class Qualifiers
2007-2011 The Khronos Group Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and/or associated documentation files (the "Materials"), to deal in the Materials without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Materials, and to permit persons to whom the Materials are furnished to do so, subject to the condition that this copyright notice and permission notice shall be included in all copies or substantial portions of the Materials.
3
Storage-class Qualifiers The typedef, extern and static storage-class specifiers.

## Notes

The `typedef`, `extern`, and `static` storage-class specifiers are supported. The `auto` and `register` storage-class specifiers are not supported..

The `extern` storage-class specifier can only be used for functions (kernel and non-kernel functions) and global variables declared in program scope. The `static` storage-class specifier can only be used for non-kernel functions and global variables declared in program scope.

## Example

extern constant float4 noise_table[256]; static constant float4 color_table[256]; extern kernel void my_foo(image2d_t img); extern void my_bar(global float *a); kernel void my_func(image2d_t img, global float *a) { extern constant float4 a; // error. static constant float4 b; // error. static float c; // error. ... my_foo(img); ... my_bar(a); ... }

## Specification

OpenCL Specification

##