我想了解预处理器内联如何包含到Fortran中的代码中。对于C,它非常简单:
Test.c:
#include <stdio.h>
int main(void) {
return 0;
}
然后,我使用以下方法编译:
gcc -E test.c
然后按预期显示C预处理器生成的内容。
现在假设我有这个Fortran代码:
Test.f:
program test
include "mpif.h"
call mpi_init
call mpi_finalize
end
然后我跑:
gfortran -E -cpp test.f // For some reas
我需要解释一下宏的定义和其他条件。
当我使用下面的函数时,我得到的值为5
#include <stdio.h>
#define CHANGE var
int var;
int main()
{
var = 5;
printf("%d",CHANGE);
}
输出:5
但如果我这样用:
#include <stdio.h>
#define CHANGABLE_VALUE var
int var;
int main()
{
var = 5;
#if CHANGABLE_VALUE == 5
printf("
我正在使用一个名为Rational Rose for C++的工具。当定义了一个包含单词"interface“的变量名时,该工具停止工作,并打印出一条空白的错误信息。
支持问题可以在这里看到:
我想添加一个预处理器指令,这样当使用变量名"interface“时,将显示编译错误。
大致是这样的:
#define interface #error The Keyword interface is not permitted
下面是两段C代码,但我不明白它们是如何工作的:
方案1:
#include<stdio.h>
#define s 10
fun() {
#undef s
#define s 20
}
int main(){
printf("%d\n",s);
fun();
printf("%d\n",s);
return 0;
}
Output: 20
20
方案2:
#include<stdio.h>
#define s 10
int main(){
printf("%d\n",s);
fun();
p
我不明白为什么在fortran77代码中包含一些C行的文本文件会给我一个警告,如果我不使用#include。我编写了一个代码示例,它应该读取一些要添加到主文件test.F中的文本:
program testInclude
include 'includetest.txt'
end program
而要包含的includetest.txt文件包含以下内容
#define _TEST_
#ifdef _TEST_
write(*,*) 'check'
#endif
如果我用gfortran test.F编译它,
我有一个用C/C++编写的库,它的开发人员声明它有一个Fortran接口。该接口将被启用,包括头文件*.h和调用经典子例程。我想编译我的Fortran程序,也链接那个库。该库已经过测试,可以正常工作。
下面是主程序:
! Main program
INCLUDE 'pastix_fortran.h'
Program TEST
IMPLICIT NONE
call GO_PASTIX
END PROGRAM TEST
例程GO_PASTIX是
SUBROUTINE GO_PASTIX
IMPLICIT NONE
pastix_data_ptr_t :: pastix_data
我正在尝试在我的游戏中添加google admob的sdk,但当我尝试在添加admob SDK之后构建项目时,我一直收到错误消息"Duplicate interface definition for class GADInterstitial“,然而,当我在一个新的项目中执行同样的操作时,我没有遇到任何问题。我检查了所有的导入和项目设置,它们都是一样的。要解决这样的问题,我应该寻找什么?
我是个C编程新手。我想当你输入像#define Const 5000这样的东西时,编译器会在编译时用5000替换Const的每个实例。这是错的吗?我尝试在我的代码中这样做,但我得到了一个语法错误。为什么我不能这么做?
#define STEPS_PER_REV 12345
... in some function
if(CurrentPosition >= STEPS_PER_REV)
{
// do some stuff here
}
编译器抱怨if语句有一个语法错误,没有给出任何细节。
我有个问题。当我在c中创建#define VAR 5时,是否需要定义类型?喜欢:#define VAR (unit_8) 5
我想像一下,当我写这段C代码的时候,发生了什么。
#define VAR 15000
void foo(uint_8);
void foo(uint_8 c) { c++; }
int main() {
foo(VAR);
return 0;
}