标签: pragma

英语语用:遗产?

perl.xml控制编辑器突出显示的文件中,我发现了一个名为 的编译指示english。在文档中我只找到了一个名为 的内置模块English,但没有找到englishpragma。该条目是english错误还是这是某种遗留问题?

perl pragma

1
推荐指数
1
解决办法
144
查看次数

SQLite 的foreign_key_list pragma 的输出

使用具有以下架构的SQLite3 :

CREATE TABLE Customers(ID INTEGER PRIMARY KEY, Company TEXT NOT NULL UNIQUE, Country TEXT NOT NULL, City TEXT NOT NULL);
CREATE TABLE Orders(ID INTEGER PRIMARY KEY, CustomerID INTEGER NOT NULL, FOREIGN KEY(CustomerID) REFERENCES Customers(ID) ON DELETE RESTRICT ON UPDATE RESTRICT);
Run Code Online (Sandbox Code Playgroud)

并发出此命令:

PRAGMA foreign_key_list(Orders);
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

0|0|Customers|CustomerID|ID|RESTRICT|RESTRICT|NONE
Run Code Online (Sandbox Code Playgroud)

由于文档没有说明此编译指示的输出的含义,除了明显的(客户- 父表、客户 ID - 子键、ID - 父键、RESTRICT - ON DELETE 和第二个RESTRICT - ON UPDATE)之外,我认为NONE对应于不支持的 MATCH 子句。

我自己无法弄清楚的是前两个零的含义。有人能告诉我那是什么吗?

sqlite foreign-keys pragma

1
推荐指数
1
解决办法
2083
查看次数

私有变量与 OMP 减少

我试图了解 OMP 如何处理不同的for循环声明。我有:

int main()
{
   int i, A[10000]={...};
   double ave = 0.0;
   #pragma omp parallel for reduction(+:ave)
   for(i=0;i<10000;i++){
       ave += A[i];
   }

   ave /= 10000;

   printf("Average value = %0.4f\n",ave);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

其中{...}是从 1 到 10000 的数字。此代码打印正确的值。#pragma omp parallel for reduction(+:ave)如果我使用is#pragma omp parallel for private(ave)的结果代替。我想我明白什么是,但想知道它是否可以替代以及如何替代。printf0.0000reduction(oper:list)private

c pragma openmp

1
推荐指数
1
解决办法
2430
查看次数

Haskell 中的 Pragma 语法

module Practice where

{-# LANGUAGE GeneralizedNewtypeDeriving #-}

class TooMany a where 
  tooMany :: a -> Bool

instance TooMany Int where
   tooMany n = n > 42 

newtype Goats =
  Goats Int deriving (Eq, Show)

--What I load into the playground
tooMany (Goats 17)

--the error I get: " No instance for (TooMany Goats) arising from a use of ‘tooMany’ "
Run Code Online (Sandbox Code Playgroud)

我相信这段代码应该可以工作,但不能工作,因为我使用的是 Haskell For Mac,它可能对编译指示使用不同的符号。

syntax haskell pragma

1
推荐指数
1
解决办法
103
查看次数

有没有办法告诉软件包启用了哪些功能?

假设我想确保实现接口的人具有特定的实验性功能,

package Foo {
  use experimental "signatures";

}
Run Code Online (Sandbox Code Playgroud)

有没有办法确定 Foo 启用了哪些功能,或者更具体地说是“实验性功能”?

perl metaprogramming pragma package

1
推荐指数
1
解决办法
139
查看次数

glibc 编译错误:错误:'__EI___errno_location' 指定的属性限制少于其目标'

帮我找出我尝试编译 glibc 2.24 时出现的错误,但出现以下错误:

 ./../include/libc-symbols.h:413:26: error: '__EI___errno_location' specifies less restrictive attributes than its target '__errno_location': 'const', 'nothrow' [-Werror=missing-attributes]
|   413 |   extern __typeof (name) __EI_##name \
|       |                          ^~~~~
| ./../include/libc-symbols.h:417:29: note: in expansion of macro '__hidden_ver1'
|   417 | #  define hidden_def(name)  __hidden_ver1(__GI_##name, name, name);
|       |                             ^~~~~~~~~~~~~
| ./../include/libc-symbols.h:468:32: note: in expansion of macro 'hidden_def'
|   468 | # define libc_hidden_def(name) hidden_def (name)
|       |                                ^~~~~~~~~~
| errno-loc.c:28:1: note: in expansion of macro 'libc_hidden_def'
|    28 | libc_hidden_def …
Run Code Online (Sandbox Code Playgroud)

c gcc glibc pragma

1
推荐指数
1
解决办法
2047
查看次数

为什么-XImplicitParams只能从命令行工作,而不是pragma?

为什么-XImplicitParams从命令行工作而不是OPTIONS_GHC pragma?

我发现ghc t.hs抛出一个parse error on input 'a'if t.hs包含以下代码,同时ghc -XImplicitParams t.hs工作正常.同上ghci.

{- OPTIONS_GHC -XImplicitParams -}
f :: (?a :: Int) => Int -> Int
f b = ?a + b
g c = f $ c+1
Run Code Online (Sandbox Code Playgroud)

haskell pragma ghc compiler-options language-extension

0
推荐指数
1
解决办法
197
查看次数

#pragma once和#include问题

我有一个循环引用的问题(即啊和Bh #including彼此),有些人建议我使用#pragma一次来防止这种情况.但是,此解决方案似乎仍然无效.

发生的事情是A类不再在Ah以外的任何文件中被识别(甚至不在A.cpp中),B类也是如此.

我来告诉你代码:

#pragma once
#include "B.h"

class A {
public: B* b;

};
Run Code Online (Sandbox Code Playgroud)

BH

#pragma once
#include "A.h"

class B {
    public: A* a;
};
Run Code Online (Sandbox Code Playgroud)

A.cpp

#include "stdafx.h"
#include "A.h"
#include "B.h"
Run Code Online (Sandbox Code Playgroud)

B.cppA.cpp相同

错误跟踪如下:

1> B.cpp 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C2143:语法错误:缺少';' 在' '1>之前c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int 1> A.cpp 1> c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C2143:语法错误:缺少';' 在' '1> 之前 c:\ users\user\documents\visual studio 2010\projects\envmodel\test\bh(5):错误C4430:缺少类型说明符 - …

c++ pragma include

0
推荐指数
2
解决办法
6662
查看次数

有条件的#pragma消息“ xxx”的自定义预处理器宏

我在整个代码中都使用了此代码:

#pragma message "FIXME: this needs to be fixed"
Run Code Online (Sandbox Code Playgroud)

我希望这些警告消息仅对启用它们的用户显示。我以为我会为此写一个宏,例如:

#ifdef SHOW_DEVELOPER_MESSAGES
#define DEVELOPER_MESSAGE(msg) _Pragma("message " ## msg)
#endif
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

DEVELOPER_MESSAGE("TEST: -- xxxx --")
Run Code Online (Sandbox Code Playgroud)

但这导致以下错误:

Pasting formed '"message ""TEST: -- xxxxx --"', an invalid preprocessing token
Run Code Online (Sandbox Code Playgroud)

我已经阅读了C / C ++宏字符串连接并尝试使用它,但是我无法使其正常工作。我在想这样做必须使消息必须像这样用转义的引号引起来(这种工作方式我只是不知道如何创建像这样的转义的字符串来与_Pragma一起使用):

_Pragma("message \"THIS is the actual message!\"")
Run Code Online (Sandbox Code Playgroud)

如何创建打印出编译指示消息的宏(或类似的解决方案)?

解决方案应该是单线的,将每一个实用信息#ifdef SHOW_DEVELOPER_MESSAGES都包含在内,这将违背此练习的目的。


奖励问题:如何更改宏以为不同的消息类型创建不同的变体,例如:

DEVELOPER_FIXME("bug")
Run Code Online (Sandbox Code Playgroud)

它总是与FIXME前缀字符串到形式:"FIXME: bug"

xcode preprocessor pragma

0
推荐指数
1
解决办法
1538
查看次数

包含C文件中的语用

我有一个C主文件,其中包括此.h文件:

#pragma pack(1) 
 #ifndef PACKAGE
 #define PACKAGE


struct A {
  uint8_t a;
  uint8_t b;
  uint64_t c;

} typedef A;


#endif
Run Code Online (Sandbox Code Playgroud)

编译警告后:

    myfile.c:28:10: warning: the current #pragma pack alignment value is modified in
      the included file [-Wpragma-pack]
#include "structures.h"
         ^
./structures.h:1:9: note: previous '#pragma pack' directive that modifies
      alignment is here
#pragma pack(1)
Run Code Online (Sandbox Code Playgroud)

出现。

我不明白我的代码有什么问题。有什么办法可以删除此警告?

这是一个完整的示例:

这是一个名为“ myfile.c”的简单C文件:

#include "structures.h"
int main(){
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是一个名为“ structures.h”的.h文件:

#include <stdlib.h>
#include <stdio.h>

  #pragma pack(1)
 #ifndef PACKAGE
 #define PACKAGE


struct A {
  uint8_t …
Run Code Online (Sandbox Code Playgroud)

c struct pragma compiler-warnings

0
推荐指数
1
解决办法
139
查看次数

c#中的#pragma region

在我用C#编写的以下程序中:

static void Main(string[] args)
        {
            paramsAndOptionalTest(1,2);

#pragma region CmdLineStuff
            for (int i = 0; i < args.Length; i++)
            {
                Console.WriteLine("{0}", args[i]);
            }
            foreach (string arg in args)
            {
                Console.WriteLine(arg);
            }
            string[] apiargs = Environment.GetCommandLineArgs();//this will give the executable name and path too
            int exitCode = Environment.ExitCode;
            foreach (string arg in apiargs)
            {
                Console.WriteLine(arg);

            }
            Console.WriteLine("Exit Code {0}", exitCode);
            string myString = string.Format("11 in hexa is {0:x}", 11);
            System.Windows.MessageBox.Show(myString);

#pragma endregion CmdLineStuff
            ImmutableStrings();
            Console.ReadLine();
        }
Run Code Online (Sandbox Code Playgroud)

我使用了#pragma区域.但是我得到了CS1633:无法识别的#pragma指令警告.所以我认为C#编译器不能识别这个Pragma,因为在C++中它工作得很好.在C#中有没有等效的pragma?

c# pragma visual-studio-2012

-1
推荐指数
1
解决办法
2011
查看次数

错误 LNK2005 结构已在 .obj 文件中定义

我一直在尝试处理有关编译单元的问题。

我得到的错误是

1>frtinvxml.obj : error LNK2005: "struct repFieldInfo det_rep_info" (?det_rep_info@@3UrepFieldInfo@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct repFieldInfo frt_rep_info" (?frt_rep_info@@3UrepFieldInfo@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct FormToolbar * tb" (?tb@@3PAUFormToolbar@@A) already defined in Frtinv.obj
1>frtinvxml.obj : error LNK2005: "struct tagDATE_STRUCT dateFrom" (?dateFrom@@3UtagDATE_STRUCT@@A) already defined in Frtinv.obj
... (It goes on for every variable and method in the header...)
Run Code Online (Sandbox Code Playgroud)

这是我得到的唯一错误。以下是所涉及的每个相应类的包含,按从树上最高到最低的顺序...

***Frtinv.hxx***
#pragma once

#include <voyage.ddh>
#include <vsched.ddh>
# ...

struct frtinvType : public frtinv_type
    {
    int …
Run Code Online (Sandbox Code Playgroud)

c++ compilation pragma include

-1
推荐指数
1
解决办法
7008
查看次数