2016-02-29 1 views
0

Я пытаюсь в C, чтобы получить имя переменной, используемой, когда было принято обращение к функции, как показано ниже:Есть ли способ, чтобы получить имя аргумента, используемого при вызове функции в C

func(varA, varB) 

Я хотел бы знать имена аргументов (varA, varB)

Я печати содержимого нескольких матриц, и я wonderign, если есть какой-либо простой способ отличить между ними, не имея на самом деле отправить имя как строка.

Спасибо

+0

Для чего вы хотите их знать? Для отладки? Запустите свой код в отладчике, и вы узнаете. Кроме того, аргументы не должны иметь имен. Что делать, если функция вызывается с помощью функции func (n + 1, next())? –

+0

Привет. @DCuser Если какой-либо ответ решил вашу проблему, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419), щелкнув галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. – 2501

ответ

1

Это невозможно без изменения определения функции.

Вы можете передать имена вручную или использовать макрос:

#define func(a , b) func2(a , b , #a , #b) 

func2(type a , type b , const char* namea , const char* nameb){ ... 

При предварительной обработке кода, оператор # преобразует переменную в строку.

1

Когда программа C компилируется и выполняется, то в основном не существование имени переменнойбольше.

Итак, нет, вы не можете получить фактический аргумент (переменная) имя из полученного параметра, как вы хотели.

Смежные вопросы