#include <stdio.h>
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
}
int addNumbers(int a, int b)
{
return a + b;
}
Почему это не компилирует, я получаю сообщение, говоря неявное объявление относительно функции addNumbers()
?
Объявляйте функцию перед использованием его либо добавлением прототипа перед Main ():
int addNumbers(int a, int b);
или переместите все функционирующие функции перед Main ().
Поместите Addnumbers перед Main
int addNumbers(int a, int b)
{
return a + b;
}
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
}
Обновление :
, чтобы распечатать его, Printf («% I», Addnumbers (A, B));
будет отображаться 7
в вышеуказанном деле.
либо определяют функцию до MAIN ()
или обеспечивать его прототип до Main ()
.
Так что либо делаю это:
#include <stdio.h>
int addNumbers(int a, int b)
{ //definition
}
int main()
{ //Code in main
addNumbers(a, b);
}
Или это:
#include <stdio.h>
int addNumbers(int, int);
int main()
{ //Code in main
addNumbers(a, b);
}
int addNumbers(int a, int b)
{ // definition
}
Вам необходимо объявить функцию, прежде чем называть ее в Main (). Либо переместить его до основного или, по крайней мере, объявить его там.
Кроме того, вы должны добавить вернуть 0
в конце основной функции, поскольку он должен возвращать INT
.
#include <stdio.h>
int addNumbers(int a, int b)
{
return a + b;
}
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
return 0;
}
Вы можете переместить всю функцию выше точки ее вызова или использовать прототип функции, например:
#include <stdio.h>
int addNumbers(int a, int b); // function prototype
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
}
int addNumbers(int a, int b)
{
return a + b;
}
Я согласен с декларацией и четкостью, но я не получаю никаких ошибок компиляции с вышеуказанным кодом. Моя версия GCC является «4.4.1-4UBUNTU9».
Я сделал небольшую модификацию для проверки кода.
#include <stdio.h>
int main()
{
int a = 4;
int b = 3;
printf("%d", addNumbers(a, b)); // Printf added.
}
int addNumbers(int a, int b)
{
return a + b;
}
Вам понадобится прямое объявление функции addNumbers
или ее определение, сдвинутое вверх перед первым использованием:
// 2161304
#include <stdio.h>
// forward declaration
int addNumbers(int a, int b);
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
}
// alternatively move this up before main ...
int addNumbers(int a, int b)
{
return a + b;
}
Относительно main
и return
:
Программы будут компилироваться без него. Подписями main, определенными стандартом, являются:
int main(void)
int main(int argc, char **argv)
Есть три переносимых возвращаемых значения:
0, EXIT_SUCCESS, EXIT_FAILURE
, которые определены в stdlib.h
.
Попробуйте:
$("#myTable").append("<tr><%= escape_javascript( render :partial => name_of_partial ) %></tr>");
И в частичной
вы должны иметь:
<td>row1</td>
<td>row2</td>
-121--1040770- Повторный ответ :
Проверили это на локальном компьютере - не сработало. Поэтому позвольте мне посоветовать использовать PDO до тех пор, пока это не будет улучшено или исправлено:
$dbh = Doctrine_Manager::connection()->getDbh();
$stmt = $dbh->prepare('SELECT DISTINCT(rec.city) FROM <tablename> WHERE rec.state = :state');
$stmt->bindParam(':state', $state);
$stmt->execute();
$result = $stmt->fetchAll();
Наконечником
Я бы рекомендовал вам использовать внешний ключ , ссылающийся на список городов в столбце город
, вместо обычного текста для гибкости и лучшей производительности.
Поскольку компилятор выполняет одну строку за другой, к моменту, когда он видит вызов функции, он должен иметь информацию о той функции, которая является основной функцией calling.so мой друг u должен рассказать компилятору о функции, прежде чем вы когда-либо сможете использовать ее.
Положите addNumbers перед main
int addNumbers(int a, int b)
{
return a + b;
}
int main()
{
int a = 4;
int b = 3;
addNumbers(a, b);
}
UPDATE:
Чтобы распечатать его, printintf("%i",addNumbers(a, b));
отобразит 7
в приведенном выше случае.
Вы должны либо переместить всю функцию addNumber()
выше основной, либо предоставить прототип. Последнее делается следующим образом:
int addNumbers(int a, int b);
int main()
{
// code of main() here
}
int addNumbers(int a, int b)
{
//code of addNumbers() here
}
если ваш компилятор является стандартом C99, то он выбрасывает и ошибку "неявное объявление", так как поскольку продвижение по умолчанию устарело в стандарте C99. Если вы попытаетесь скомпилировать компилятор со стандартом C89, это будет допустимо.
В стандарте C99 необходим прототип функции
.Вы должны объявить функцию перед использованием. При работе с функциями помните эти 4 основные части.