Storage-class_Qualifiers(3) The typedef, extern and static storage-class specifiers.


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.


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); ... }


m[blue]OpenCL Specificationm[][1]


The Khronos Group


Copyright © 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.


OpenCL Specification
page 230, section 6.8 - Storage-class Qualifiers