что такое содержимое структуры данных cl_platform_id? - PullRequest
0 голосов
/ 03 июня 2018

Я понимаю, что cl_platform_id - это структура данных, подобная:

typedef struct{
   foo1 bar1;
   foo2 bar2;
   ...;
}cl_platform_id;

Но каково содержание этой структуры?например, если я хочу напечатать это содержимое на консоль, какой тип данных мне следует использовать?

Я пробовал целое число, но я получил ошибку:

предупреждение: формат указывает тип 'int'но аргумент имеет тип' cl_platform_id '(он же' struct _cl_platform_id * ') [-Wformat]

Спасибо за вашу помощь заранее.

Ответы [ 2 ]

0 голосов
/ 03 июня 2018

Благодаря ответу wm мне указали правильное направление, и я должен был написать фрагмент для печати информации о платформе:

cl_platform_info Param_Name[5]={CL_PLATFORM_PROFILE, CL_PLATFORM_VERSION, CL_PLATFORM_NAME, CL_PLATFORM_VENDOR, CL_PLATFORM_EXTENSIONS};
cl_platform_info param_name;
size_t param_value_size;
for(int j=0;j<5;j++){
  param_name=Param_Name[j];
  err = clGetPlatformInfo( platforms[i], param_name, 0, NULL, &param_value_size);
  char* param_value = (char*)malloc( sizeof(char) * param_value_size);
  err = clGetPlatformInfo( platforms[i], param_name, param_value_size, param_value, NULL );
  printf("%s\n", param_value);
  free(param_value);
}

Полный код можно найти здесь, в этом GitHub Gist .

0 голосов
/ 03 июня 2018

cl_platform_id - абстрактный (непрозрачный) тип, он не предназначен для непосредственного использования.Вместо этого запросите информацию, которую вы хотите знать, с помощью clGetPlatformInfo на вашем cl_platform_id.Вы можете получить строки (например, CL_PLATFORM_NAME), которые затем сможете распечатать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...