小编Nic*_*ckO的帖子

如果bool是int的宏,为什么它的大小不同?

我希望有人可以解释原因

#include <stdbool.h>

printf("size of bool %d\n", sizeof(bool));
printf("size of int %d\n", sizeof(int));
Run Code Online (Sandbox Code Playgroud)

输出到

size of bool 1
size of int 4
Run Code Online (Sandbox Code Playgroud)

我已经看了http://pubs.opengroup.org/onlinepubs/009695399/basedefs/stdbool.h.html这似乎表明,布尔本质上是_Bool宏,当设置为true或false,其实只是一个整数常量的宏.如果是整数,为什么它的大小不一样?

我问,因为我们花了太长时间来调试我们没有分配足够内存的程序.

c memory int boolean

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

MPI调试,分段错误?

编辑:我的问题类似于C,Open MPI:从调用到MPI_Finalize()的分段错误.Segfault并不总是会发生,特别是在进程数量较少的情况下,所以无论哪种方式都可以回答那个问题...

我希望得到一些帮助调试以下代码:

int main(){
        long* my_local;
        long n, s, f;
        MPI_Init(NULL, NULL);
        MPI_Comm_size(MPI_COMM_WORLD, &comm_sz);
        MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);

    if(my_rank == 0){
        /*  Get size n from user                            */
        printf("Total processes: %d\n", comm_sz);
        printf("Number of keys to be sorted?  ");
        fflush(stdout);
        scanf("%ld", &n);

        /*  Broadcast size n to other processes             */
        MPI_Bcast(&n, 1, MPI_LONG, 0, MPI_COMM_WORLD);

        /*  Create n/comm_sz keys                           
             NOTE! some processes will have 1 extra key if
              n%comm_sz != 0                                */
        create_Keys(&my_local, my_rank, comm_sz, n, &s, &f);
    } …
Run Code Online (Sandbox Code Playgroud)

c debugging mpi

5
推荐指数
1
解决办法
2万
查看次数

在 mmix 交互模式下检查寄存器内容

我想知道如何在交互模式下使用 mmix 来显示寄存器的内容,只要我要求查看它们。例如,我有一个简单的 mmix 程序:

% Compute D=4A-2B+16C
%LABEL      OPCode      Operands        Comments
            LOC         Data_Segment
            GREG        @
A           OCTA        3          Reserve an octabyte for A
B           OCTA        #10        Reserve an octabyte for B
C           OCTA        2          Reserve an octabyte for C
D           OCTA        0          Reserve an octabyte for D

            LOC         #100            start assembly instructions
Main        LDO         $0,A            $0 contents of A
            LDO         $1,B            $1 contents of B
            LDO         $2,C            $2 contents of C
            SL          $0,$0,2         $0 = 4*$0
            SL          $1,$1,1         $1 …
Run Code Online (Sandbox Code Playgroud)

assembly mmix

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

Racket图的语法

我正在尝试关注如何使用2D绘图的球拍文档.不幸的是,我似乎无法让它工作(可能是简单的事情)

我的代码是:

#lang racket
(require plot)
(plot (function sin (-pi) pi #:label "y = sin(x)"))
Run Code Online (Sandbox Code Playgroud)

而错误是:

compile: unbound identifier in module in: function
Run Code Online (Sandbox Code Playgroud)

我是一个球拍/ lisp新手,所以如果很明显,我只是没有意识到.我也试过插入(require racket/gui/base),(plot-new-window? #t)但那些似乎也没有做到这一点.

我在Ubuntu 12.04上使用racket v5.1.3.我没有使用Dr. Racket.

scheme racket

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

Racket,用任意数量的参数执行任意函数

我想按照以下方式定义一般功能:

(define (gen-func other-func)
   (other-func))
Run Code Online (Sandbox Code Playgroud)

这将执行传递给它的函数.但是,我希望能够传递参数other-func.所以,如果我有:

(define (add-test a b c d)
    (+ a b c d))
Run Code Online (Sandbox Code Playgroud)

(define (divide-test a b)
    (/ a b))
Run Code Online (Sandbox Code Playgroud)

然后我就能做到

(gen-func divide-test 3 4)
Run Code Online (Sandbox Code Playgroud)

(gen-func add-test 1 2 3 4)
Run Code Online (Sandbox Code Playgroud)

但它实际上会做我想要的(通过传递任意数量的参数来执行函数).这是我学习球拍的过程的一部分.

macros scheme racket

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

标签 统计

c ×2

racket ×2

scheme ×2

assembly ×1

boolean ×1

debugging ×1

int ×1

macros ×1

memory ×1

mmix ×1

mpi ×1